因爲問題量太大,本文只是給了問題,但願發揮讀者的動手能力,本身去探索下,也能夠在下方進行評論回覆你的答案或者提出更高質量的問題!!!前端
method swizzling
runtime Associate
方法關聯的對象,須要在主對象dealloc
的時候釋放麼?runtime
如何實現weak
變量的自動置nil
?知道SideTable
嗎?class_copyIvarList
& class_copyPropertyList
區別class_rw_t
和 class_ro_t
的區別category
如何被加載的,兩個category的load
方法的加載順序,兩個category的同名方法的加載順序category
& extension
區別,能給NSObject添加Extension嗎,結果如何方法查詢-> 動態解析-> 消息轉發
以前作了什麼IMP
、SEL
、Method
的區別和使用場景load
、initialize
方法的區別什麼?在繼承關係中他們有什麼區別weak
的實現原理?SideTable
的結構是什麼樣的Autoreleasepool
的原理?所使用的的數據結構是什麼ARC
的實現原理?ARC
下對retain & release
作了哪些優化ARC
下哪些狀況會形成內存泄漏Method Swizzle
注意事項atomic
的內部實現是怎麼樣的?能保證線程安全嗎class、objc_getClass、object_getclass
方法有什麼區別?name&observer&SEL
之間的關係等)NSNotificationCenter
接受消息和發送消息是在一個線程裏嗎?如何異步發送消息NSNotificationQueue
是異步仍是同步發送?在哪一個線程響應NSNotificationQueue
和runloop
的關係runloop
對於一個標準的iOS開發來講都不陌生,應該說熟悉runloop
是標配,下面就隨便列幾個典型問題吧git
runloop
是開啓的PerformSelector
和runloop
的關係同runloop
同樣,這也是標配的知識點了,一樣列出幾個典型問題面試
block
的內部實現,結構體是什麼樣的int
變量被 __block
修飾與否的區別?block的變量截獲block
在修改NSMutableArray
,需不須要添加__block
block
能夠用strong
修飾嗎__strong、__weak
修飾block
發生copy
時機Block
訪問對象類型的auto變量
時,在ARC和MRC
下有什麼區別主要以GCD爲主算法
iOS
開發中有多少類型的線程?分別對比GCD
有哪些隊列,默認提供哪些隊列GCD
有哪些方法apiGCD
主線程 & 主隊列的關係dispatch_once
實現原理NSOperationQueue
中的maxConcurrentOperationCount
默認值NSTimer、CADisplayLink、dispatch_source_t
的優劣AutoLayout
的原理,性能如何UIView & CALayer
的區別drawrect & layoutsubviews
調用時機只是列出一些iOS比較核心的開源庫,這些庫包含了不少高質量的思想,源碼學習的時候必定要關注每一個框架解決的核心問題是什麼,還有它們的優缺點,這樣才能算真正理解和吸取設計模式
讀者
們在評論下面補充吧MVC、MVP、MVVM
設計模式git diff
PerformSelector & NSInvocation
優劣對比oc
怎麼實現多繼承?怎麼面向切面bug
會致使崩潰,如何防禦崩潰app
的啓動過程(考察LLVM編譯過程、靜態連接、動態連接、runtime初始化)match-o
文件結構進程和線程的區別api
HTTPS
的握手過程緩存
什麼是中間人攻擊
?怎麼預防安全
TCP
的握手過程?爲何進行三次握手,四次揮手markdown
堆和棧
區的區別?誰的佔用內存空間大網絡
加密算法:對稱加密算法和非對稱加密算法
區別
常見的對稱加密和非對稱加密
算法有哪些
MD五、Sha一、Sha256
區別
charles
抓包過程?不使用charles
,4G
網絡如何抓包
對於移動開發者來講,通常不會遇到很是難的算法,大多以數據結構爲主,筆者列出一些必會的算法,固然有時間了能夠去LeetCode上刷刷題
原:[iOS開發面試,常問的面試題(題集) - 簡書 (jianshu.com)] (www.jianshu.com/p/4dd8d26ea…)
傳送門: