iOS面試題 --- 中級

派二星發表於2019-04-04

最近在準備ms,發現了一些比較尖銳的問題,可能平時開發注意不要,自己也會但是就是不能清晰的表達出來,問題比較寬泛再此做個總結(下面附部分答案,答案為自己理解結合百度,可能有些不標準歡迎各位提出意見)。問題持續更新,答案也持續更新。歡迎投稿。這些都會了我覺得找工作應該沒問題了。這些知識是一些簡單的點,真正面試的時候肯定會有比這兒更深的層次,這只是引出一個問題的點。還是需要多學習

iOS底層

  1. KVO的實現原理
  2. KVC是什麼,他是如何實現的
  3. 請簡單介紹一下Runtime,以及它的原理和應用(訊息傳送機制,動態解析。應用防止崩潰)
  4. 什麼是block?(堆block,棧block,全域性block)
  5. weak的實現原理。
  6. 通知和代理的區別。
  7. 說說你讀過的第三方庫工作流程。
  8. oc類的本質是什麼?他的結構是什麼,他是如何初始化的。
  9. Swift類的初始化發生了什麼

架構

  1. 談談MVC,MVVM,MVP的三種架構各自的優缺點。

設計模式

  1. 介面卡
  2. 裝飾器
  3. 迭代器
  4. 工廠模式,抽象工廠,簡單工廠模式的區別
  5. 物件池(可選)
  6. 介面卡
  7. 代理
  8. 單例的優缺點

...

網路相關

  1. 什麼是http,它與https的區別
  2. tcp和udp的區別,介紹一下三次握手,四次揮手,為啥連線要三次,斷開要四次揮手
  3. alamofire或者AFN的證書認證。

執行緒

  1. 什麼時候會造成執行緒死鎖
  2. Runloop是什麼以及它的工作流程
  3. NSOperation和GCD的區別。
  4. 執行緒與程式的區別。

資料結構與演算法

  1. 連結串列是什麼,如何確定連結串列有環
  2. 如何用佇列實現一個棧,或者用棧實現一個佇列。
  3. 二分法查詢的實現流程
  4. 說說你知道的排序演算法的實現以及他們的時間複雜度,以及穩定性。

答案

底層答案:iOS底層
//設計模式:設計模式
//網路相關: 網路相關
//多執行緒: 多執行緒
//資料結構與演算法: 資料結構與演算法

相關文章