一千个读者眼中有一千个哈姆雷特,一千名 iOS 程序员心目中就有一千套 iOS 高级面试题。本文就是笔者认为可以用来面试高级 iOS 程序员的面试题。
这套题的题目跟公司和业务都没有关系,而且也并不代表笔者本人可以把这些题回答得非常好,笔者只是将一部分觉得比较好的题从收集的面试题里面抽出来了而已。
收集的面试题有以下三个来源:
笔者在准备面试的过程中搜集并整理过的面试题。
笔者在准备面试的过程中自己思考过的新题。
笔者在面试过程中遇到的觉得比较好的题。
本文分为三个部分展开:
面试题
喜欢考察的和不喜欢考察的题
建议准备数据结构和算法题
第一部分就是面试题了;第二部分给出了笔者喜欢考察和不喜欢考察的题以及原因;第三部分是笔者建议大家准备数据结构和算法题的原因。
面试题
iOS 基础题
分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?
讲一下atomic的实现机制;为什么不能保证绝对的线程安全(最好可以结合场景来说)?
被weak修饰的对象在被释放的时候会发生什么?是如何实现的?知道sideTable么?里面的结构可以画出来么?
关联对象有什么应用,系统如何管理关联对象?其被释放的时候需要手动将所有的关联对象的指针置空么?
KVO的底层实现?如何取消系统默认的KVO并手动触发(给KVO的触发设定条件:改变的值符合某个条件时再触发KVO)?
Autoreleasepool所使用的数据结构是什么?AutoreleasePoolPage结构体了解么?
讲一下对象,类对象&#