相信最近很多人都在跳槽,我這里就根據知識點分門別類的整理了一下
最近公司招人,所以面試了一波,總結了一下這個區間內的要求吧。
面試答案下面有,希望大家收藏下
一、線程、隊列、鎖
1、線程、隊列的關系? 一個線程是否可能存在于兩個隊列?
2、 隊列一定會創建線程嗎?
3、隊列是否可以無限制創建?
4、 PerformSelector & NSInvocation優劣對比*
5、 gcd 的使用,能不能取消?
6、如何進行線程保活
7、編程題 3個線程順序打印 0-100
二、響應鏈
1、 app如何接收到觸摸事件的
2、 響應鏈: 如果 Swizzle 了 父 View 的 touchBegin 的方法, 會對子 View 造成什么影響?
3、兩個按鈕同時響應
4、UIbutton繼承鏈,UIControl UIresponder區別
5、hit-test 和 point inside 的區別
三、GCD
1、 group 如何實現barrier類似的功能?
2、 gcd queue 的區別
3、 gcd、NSOperation區別, 功能方法區別.
4、 GCD group 如何實現同步的? (還能用什么實現?)
5、 執行一個 NSThread 任務, 如何在執行過程中讓他終止?
6、 iOS NSOperation 是如何終止/取消任務的?
7、 多線程,異步執行(async)一個performSelector 會執行么?如果加上 afterDelay呢?
8、 GCD 實現 NSOperationQueue
9、 DispatchQoS的作用
四、ISA、類結構
1、 isa 指針是什么?里面有哪些特殊的位數?什么是TaggedPointer的優化?
2、 isa指針里面都存了什么,32和64位分別講一下
3、 OC 是否支持重載? 為什么?
4、IMP、SEL Method 都表示什么意思? 與 _cmd 相關
5、 class 的底層結構是什么樣的?
6、 method_t 里包含什么?
7、 super 的本質是什么?
8、 OC的消息機制有幾步?
五、組件化、架構
1、 CTMediator
2、. 公司有多個項目啟動, 如何讓接入的組件效率提升? (不局限于iOS, 要講前后端配合的方案, 偏重量級的方案)
3、. 如果你做的是一個超級 APP (微信、淘寶), 里面有一個引擎可以運行不同的小程序, 你如何設計保證小程序之間的安全性?
4、 介紹一下你們APP的架構設計
六、Swift
1、Swift、OC 如何相互調用? Swift-->OC 、OC -->Swift? 我開發一個Swift的SDK,(API都是Swift的), 內部需要調用到 OC 的庫, 要怎么做?
2、dynamic 在swift與OC中的作用
3、protobuf的原理
4、 rn 與 flutter 的區別,flutter 組件渲染規則
答案詳見:docs.qq.com/doc/DVWlQam9Qd3B1cEF2
希望自己能有目標有計劃地準備面試,后面我會逐個復習一下相應的內容
- 更多技術題合集: