系统学习推荐一些经典书籍:
《Effective Objective-C 2.0》
《Objective-C 高级编程》
《剑指Offer》
《程序员的自我修养》
1.Runloop 的实现原理和数据结构,及其应用?html
包括 Runloop 与线程的关系,Runloop 的 Mode 等ios
参考:git
深刻理解 Runloop程序员
iOS Runloop 详解github
2.谈谈对 runtime 的理解,及其应用, 为何称 OC 为动态语言?编程
包括 isa 指针, SEL, IMP,MetaClass,objec_msgSend, Method Swizzling,Objective-C Associated Objects 等设计模式
参考:数据结构
Method Swizzling OC 实现:
iOS runtime实战应用:Method Swizzling
Method Swizzling Swift 实现:
如何优雅地在Swift4中实现Method-Swizzling
遍历对象的属性:
class_copyPropertyList与class_copyIvarList区别,获取属性,使用runtime方法的注意事项
3.内存管理 ARC, MRC
包括内存泄露,野指针,循环引用,内存泄露调试工具,堆,栈等
参考:
4.iOS 消息传递机制
参考:
5.多线程,哪些场景须要开辟线程?
包括 NSTread, NSOperationQueue,CGD,同步锁,主线程刷新 UI,
同步,异步,并行,串行
参考:
6.Autoreleasepool 原理和使用场景
参考:
7.App 的启动过程
参考:
8.UIViewController 生命周期
参考:
9.UIView 的绘制流程
包括 init, initwithcode, awake, layoutsubviews, drawrect 等方法的调用顺序,使用xib, storyboard 的调用顺序
setNeedsDisplay, layoutIfNeeded,hittest, pointinside
参考:
UIView 的 hitTest 和pointInside 方法
10.UIView 的 layer
包括 anchorPoint,position,动画
参考:
11.Block 本质
包括 __weak 和 __block,循环引用问题
参考:
12.property 和 ivar 的区别
包括属性关键字 strong,weak,assign, retain, copy, atomic, nonatomic,readonly, readwrite
参考:
OC MRC 成员变量, property, synthesize, dynamic
13.KVO 和 KVC,Delegate,单例, Notification等设计模式
14.static, const, extern 关键字的做用
参考:
15.Category 和 Extension, Protocol
16.iOS中经常使用的数据存储方式有哪些?
包括 NSUserDefault,KeyChainplist,Archive(归档),SQLite,CoreData
17.iOS的沙盒目录结构是怎样的?
面试题参考: