有点难的一份iOS面试题

最近我朋友给了我一份看起来有点难的题,说是他们公司的面试题。如下
1、什么是C++的虚表???
2、动态库里的类,如果新增了属性,那么在不重新编译的情况下,如iOS10升级到iOS11,那么该类的内存布局是如何兼容的?
3、OC的结构体中如何保存对象(指针)?

1、UIKit和Foundation框架是静态库还是动态库?
2、把某个类遵循的协议的实现方法都丢到一个分类里去声明和实现,可以吗?
3、分类的具体实现、扩展的具体实现

1、如何给一个类新增字面量语法?

1、编译时,声明在.h中的<protocol>是如何被识别并编译的?
2、如何证明“如果一个变量既声明为static,又声明为const,那么编译器根本不会创建符号,而是会像宏预处理指令一样,把所有遇到的变量都替换为常值”?
3、什么是“全局符号表”?
4、链接阶段,全局符号表起什么作用?
5、分配常量在什么阶段?如何分配常量内存?常量是存储在哪个空间的?

1、运行时如何动态查找一个实例变量的内存偏移?
2、有哪些方法可以不让@property自动合成实例变量?
3、atomic的实现原理?
4、weak在运行时阶段是如何实现变量销毁时指向nil的?
5、atomic有什么线程不安全的地方吗?什么地方用到过atomic?

1、hash的实际作用?
2、hash是如何计算的?
3、NSArray的存储空间是连续的吗?
4、NSDictionary的存储原理?
5、NSSet的存储原理?

1、什么是占位数组?
2、占位数组如何转化为NSArray的实体数组?

1、什么是C语言的“静态绑定”?
2、函数在编译期是如何被决定的(函数在编译器会被转化为什么)?
3、什么是“内联”?
4、函数地址是如何硬编码在指令中的?
5、什么是C语言的“动态绑定”?
6、SEL的本质是什么?
7、OC方法缓存表中的内容是什么?
8、为什么要有objc_msgSend_stret、objc_msgSend_fpret函数?
9、什么是“尾调用优化”技术?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础 1. 为什么说Objective-C是一门动态的语言? 2. 讲一下MVC和MVVM,MVP? 3. 为...
    波妞和酱豆子阅读 8,669评论 0 46
  • 把网上的一些结合自己面试时遇到的面试题总结了一下,以后有新的还会再加进来。 1. OC 的理解与特性 OC 作为一...
    AlaricMurray阅读 7,389评论 0 20
  • 1.写一个NSString类的实现 +(id)initWithCString:(c*****t char *)nu...
    韩七夏阅读 9,194评论 2 37
  • 萌萌的阳光带来丝丝的暖意,少许的清风尤如薄纱抚面; 羞涩的太阳在绵花糖的云里,若隐若现,阵阵轻风正是沉鱼的纤手,很...
    sunhello阅读 2,350评论 0 0
  • 一个恋爱失败的人去开导俩恋爱失败的 莫名其妙被全线拉黑的人 活到现在还一事无成,被人当做小孩的人 今天把我拉黑了,...
    新能元阅读 1,351评论 0 0

友情链接更多精彩内容