iOS面試主要方面
runtime
1.1 runtime能做什么。
1.2 runtime包含的內容。
1.3 catagory作用以及和extention區別。
1.4 load 和 initiallize的區別。
1.5 消息發送過程。
1.6 OC實現多繼承的方式。iOS如果管理內存的。
2.1 引用計數器怎么算的。
2.2 strong、weak、assign、atomic等區別。
2.3 實例對象釋放時機。
2.4 autoreleasepool 原理。
2.5 循環引用問題。(NSTimer,block等)runloop
3.1 runloop概念。
3.2 runloop原理。
3.3 runloop的使用。
3.4 runloop和runtime以及autoreleasepool之間的關系。包括和線程之間的關系。iOS的設計模式
4.1 單例,注意dispatch_once和@synchronized區別和聯系。為什么使用dispatch_once更好一些,使用dispatch_once會有哪些問題。
4.2 通知,實現原理。
4.3 KVC,實現原理。
4.4 KVO,實現原理。多線程
5.1 GCD主要方法。
5.2 GCD的信號通知方式有幾種。(信號量、group、barrier)
5.3 線程死鎖問題。
可深可淺響應者鏈
6.1 一個按鈕的點擊事件怎么實現的。
6.2 手勢沖突怎么解決的。
6.3 UI覆蓋情況下各種不同情況怎么相應的。
6.4 響應和runloop關系。
6.5 window覆蓋以及優先級問題。算法
7.1 排序算法尤其是快排、堆排序、插入排序。
7.2 二叉樹層次遍歷和深度遍歷。
7.3 單鏈表反轉以及刪除。
7.4 哈希表的應用。比如,如何快速的查找到兩個view的第一個公共父view。網絡
8.1TCP三次握手,四次揮手。
8.2 https 握手過程簡單描述。
8.3 為什么https是安全的。