一面
1.iOS有哪几种锁?比较各种锁的优缺点?并给出实例场景判断用哪种锁
2.内核态和用户态?写的代码在哪上面?
3.内存管理机制
4.block有几种?追问 为什么__block修饰的值在内部可以改变
5.修饰属性有哪几个?追问 为什么用copy?weak对象为nil的底层
6.多线程有哪几种?GCD和NSOpretionyou什么区别?追问 信号量,dispatch_once的原理
7.runtime是什么?superclass是什么类型的?math_list里有什么?追问SEL里面有什么(知道的请告诉我,查资料没找到)
8.runLoop机制?source0是什么?source1是什么?追问 事件响应时怎么通知runLoop的
9.SDWebImage的原理
10.KVO的实现原理
11.字典的原理?追问重复的key是怎么排列的?取的时候是怎么取的
12.给一个二叉树图,并用前排,中排写出结果
13.layoutIfNeed 和 setNeedlayout有什么区别
面试一个多小时,跟面试官聊得很愉快,总体感觉有点难度 主要是1.2不知道,12不知道,sel里面有什么不知道,dsipatch_once的原理不知道,13回答的不好