百度面试题:
一面:知识点
Objective C runtime library: Objective C的对象模型,Block的底层实现结构,消息发送,消息转发,内存管理
CoreData : 多线程处理大量数据同步时的操作
Delegate:Notification,KVO, other优缺点
Runtime:category,method的实现机制。 class的载入过程
二面:解决方案的能力
方案,适合的例子,关键的函数名称,方法,设计模式,算法
设计一个progress bar解决方案,追问到CoreGraphic、CGPath,maskLayer
设计一个popup view,追问呆Keywindow,UIWindow的layer,UIView hierarchy
从设计模式角度分析Delegate,Notification,KVO的区别,追问自己写的library和开源的项目中用到那些设计模式。有哪些好处和坏处,能否改进
设计方案检测KVO的同步异步问题,willChange和didChange的不同点,然后追问到有没有其他地方也有类似地方,Core Data的falut object
设计一个kvo系统
多线程,什么时候采用多线程方案以及理由,追问系统还有哪些在后台运行的thread,被追问到view lift circle, IOS6之后的不同以及内存管理
多线程中尝尝遇到的问题,猪瘟到思索,优先级翻转,线程池等
百度需要一个一亿级别的app需要统计用户行为的日志系统,不实用数据库,只使用普通文件,设计一个系统,被追问到内存映射文件。