2020年,大廠常問iOS面試題匯總!

Runloop & KVO

runloop

  1. app如何接收到觸摸事件的
  2. 為什么只有主線程的runloop是開啟的
  3. 為什么只在主線程刷新UI
  4. PerformSelectorrunloop的關(guān)系
  5. 如何使線程?;?/li>

KVO

  1. 實現(xiàn)原理
  2. 如何手動關(guān)閉kvo
  3. 通過KVC修改屬性會觸發(fā)KVO么
  4. 哪些情況下使用kvo會崩潰,怎么防護崩潰
  5. kvo的優(yōu)缺點

runtime相關(guān)問題

結(jié)構(gòu)模型

  1. 介紹下runtime的內(nèi)存模型(isa、對象、類、metaclass、結(jié)構(gòu)體的存儲信息等)
  2. 為什么要設(shè)計metaclass
  3. class_copyIvarList & class_copyPropertyList區(qū)別
  4. class_rw_tclass_ro_t 的區(qū)別
  5. category如何被加載的,兩個category的load方法的加載順序,兩個category的同名方法的加載順序
  6. category & extension區(qū)別,能給NSObject添加Extension嗎,結(jié)果如何
  7. 消息轉(zhuǎn)發(fā)機制,消息轉(zhuǎn)發(fā)機制和其他語言的消息機制優(yōu)劣對比
  8. 在方法調(diào)用的時候,方法查詢-> 動態(tài)解析-> 消息轉(zhuǎn)發(fā) 之前做了什么
  9. IMP、SEL、Method的區(qū)別和使用場景
  10. load、initialize方法的區(qū)別什么?在繼承關(guān)系中他們有什么區(qū)別
  11. 說說消息轉(zhuǎn)發(fā)機制的優(yōu)劣

Block

  1. block的內(nèi)部實現(xiàn),結(jié)構(gòu)體是什么樣的
  2. block是類嗎,有哪些類型
  3. 一個int變量被 __block 修飾與否的區(qū)別?block的變量截獲
  4. block在修改NSMutableArray,需不需要添加__block
  5. 怎么進行內(nèi)存管理的
  6. block可以用strong修飾嗎
  7. 解決循環(huán)引用時為什么要用__strong、__weak修飾
  8. block發(fā)生copy時機
  9. Block訪問對象類型的auto變量時,在ARC和MRC下有什么區(qū)別

多線程

主要以GCD為主

  1. iOS開發(fā)中有多少類型的線程?分別對比
  2. GCD有哪些隊列,默認(rèn)提供哪些隊列
  3. GCD有哪些方法api
  4. GCD主線程 & 主隊列的關(guān)系
  5. 如何實現(xiàn)同步,有多少方式就說多少
  6. dispatch_once實現(xiàn)原理
  7. 什么情況下會死鎖
  8. 有哪些類型的線程鎖,分別介紹下作用和使用場景
  9. NSOperationQueue中的maxConcurrentOperationCount默認(rèn)值
  10. NSTimer、CADisplayLink、dispatch_source_t 的優(yōu)劣

性能優(yōu)化

如何做啟動優(yōu)化,如何監(jiān)控
如何做卡頓優(yōu)化,如何監(jiān)控
如何做耗電優(yōu)化,如何監(jiān)控
如何做網(wǎng)絡(luò)優(yōu)化,如何監(jiān)控

架構(gòu)設(shè)計

  1. 手動埋點、自動化埋點、可視化埋點
  2. MVC、MVP、MVVM設(shè)計模式
  3. 常見的設(shè)計模式
  4. 單例的弊端
  5. 常見的路由方案,以及優(yōu)缺點對比
  6. 如果保證項目的穩(wěn)定性
  7. 設(shè)計一個圖片緩存框架(LRU)
  8. 如何設(shè)計一個git diff
  9. 設(shè)計一個線程池?畫出你的架構(gòu)圖
  10. 你的app架構(gòu)是什么,有什么優(yōu)缺點、為什么這么做、怎么改進

數(shù)據(jù)結(jié)構(gòu)與算法

  1. 八大排序算法
  2. 棧&隊列
  3. 字符串處理
  4. 鏈表
  5. 二叉樹相關(guān)操作
  6. 深搜廣搜
  7. 基本的動態(tài)規(guī)劃題、貪心算法、二分查找

總結(jié)

這些都是收集于最近面試中一些常見問題,歡迎各位業(yè)界高手留下更多的題目與答案!


更多iOS面試真題答案,可加 iOS技術(shù)探討群:937194184,群文件直接獲取

如下圖所示:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 面向?qū)ο蟮娜筇匦裕悍庋b、繼承、多態(tài) OC內(nèi)存管理 _strong 引用計數(shù)器來控制對象的生命周期。 _weak...
    運氣不夠技術(shù)湊閱讀 1,216評論 0 10
  • 1.設(shè)計模式是什么? 你知道哪些設(shè)計模式,并簡要敘述? 設(shè)計模式是一種編碼經(jīng)驗,就是用比較成熟的邏輯去處理某一種類...
    司馬DE晴空閱讀 1,458評論 0 7
  • 1.Difference between shallow copy and deep copy? 淺復(fù)制和深復(fù)制的...
    用心在飛閱讀 1,069評論 0 9
  • http://www.devstore.cn/essay/essayInfo/6525.html【原文地址】 序言...
    起名好難_fz閱讀 716評論 1 1
  • 年紀(jì)越來越大 越來越害怕失去 不管是友情親情還是世界上任何的一種感情 我都想要去珍惜 除非是到了不能挽回的地步 機...
    靜九不吃閱讀 270評論 0 0

友情鏈接更多精彩內(nèi)容