天天看點

ios 通過kvc修改屬性會觸發kvo_2020年,大廠常問iOS面試題彙總!

Runloop & KVO

runloop

  1. app如何接收到觸摸事件的
  2. 為什麼隻有主線程的

    runloop

    是開啟的
  3. 為什麼隻在主線程重新整理UI
  4. PerformSelector

    runloop

    的關系
  5. 如何使線程保活

KVO

  1. 實作原理
  2. 如何手動關閉kvo
  3. 通過KVC修改屬性會觸發KVO麼
  4. 哪些情況下使用kvo會崩潰,怎麼防護崩潰
  5. kvo的優缺點

runtime相關問題

結構模型

  1. 介紹下runtime的記憶體模型(isa、對象、類、metaclass、結構體的存儲資訊等)
  2. 為什麼要設計metaclass
  3. class_copyIvarList

    &

    class_copyPropertyList

    差別
  4. class_rw_t

    class_ro_t

    的差別
  5. category

    如何被加載的,兩個category的

    load

    方法的加載順序,兩個category的同名方法的加載順序
  6. category

    &

    extension

    差別,能給NSObject添加Extension嗎,結果如何
  7. 消息轉發機制,消息轉發機制和其他語言的消息機制優劣對比
  8. 在方法調用的時候,

    方法查詢-> 動态解析-> 消息轉發

    之前做了什麼
  9. IMP

    SEL

    Method

    的差別和使用場景
  10. load

    initialize

    方法的差別什麼?在繼承關系中他們有什麼差別
  11. 說說消息轉發機制的優劣

Block

  1. block

    的内部實作,結構體是什麼樣的
  2. block是類嗎,有哪些類型
  3. 一個

    int

    變量被

    __block

    修飾與否的差別?block的變量截獲
  4. block

    在修改

    NSMutableArray

    ,需不需要添加

    __block

  5. 怎麼進行記憶體管理的
  6. block

    可以用

    strong

    修飾嗎
  7. 解決循環引用時為什麼要用

    __strong、__weak

    修飾
  8. block

    發生

    copy

    時機
  9. Block

    通路對象類型的

    auto變量

    時,在

    ARC和MRC

    下有什麼差別

多線程

主要以GCD為主

  1. iOS

    開發中有多少類型的線程?分别對比
  2. GCD

    有哪些隊列,預設提供哪些隊列
  3. GCD

    有哪些方法api
  4. GCD

    主線程 & 主隊列的關系
  5. 如何實作同步,有多少方式就說多少
  6. dispatch_once

    實作原理
  7. 什麼情況下會死鎖
  8. 有哪些類型的線程鎖,分别介紹下作用和使用場景
  9. NSOperationQueue

    中的

    maxConcurrentOperationCount

    預設值
  10. NSTimer、CADisplayLink、dispatch_source_t

    的優劣

性能優化

如何做啟動優化,如何監控

如何做卡頓優化,如何監控

如何做耗電優化,如何監控

如何做網絡優化,如何監控

架構設計

  1. 手動埋點、自動化埋點、可視化埋點
  2. MVC、MVP、MVVM

    設計模式
  3. 常見的設計模式
  4. 單例的弊端
  5. 常見的路由方案,以及優缺點對比
  6. 如果保證項目的穩定性
  7. 設計一個圖檔緩存架構(LRU)
  8. 如何設計一個

    git diff

  9. 設計一個線程池?畫出你的架構圖
  10. 你的app架構是什麼,有什麼優缺點、為什麼這麼做、怎麼改進

資料結構與算法

  1. 八大排序算法
  2. 棧&隊列
  3. 字元串處理
  4. 連結清單
  5. 二叉樹相關操作
  6. 深搜廣搜
  7. 基本的動态規劃題、貪心算法、二分查找
推薦: iOS面試題答案專欄:

iOS面試題合集(上) - 專題 - 簡書​www.jianshu.com

ios 通過kvc修改屬性會觸發kvo_2020年,大廠常問iOS面試題彙總!

iOS面試題大全--(附答案)​www.jianshu.com

ios 通過kvc修改屬性會觸發kvo_2020年,大廠常問iOS面試題彙總!

總結

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