系統學習推薦一些經典書籍:
《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的沙盒目錄結構是怎樣的?
面試題參考: