前言
面試 iOS 開發時,切入點很重要,不同的切入點會導致不同的結果,沒有找到合適的切入點也無法對應聘者有一個全面的了解,所以這份面試問題串列更多的是提供方向,沒有固定的答案,而且可以根據應聘者的回應引出更多有意思深層次的討論,
一般性問題
- 最近這兩天你有學到什么知識/技能么?
- 最近有做過比較酷或者比較有挑戰的專案么?
- 最近看過的書/文章有哪些?
- 如何向一個只接觸過互聯網的孩子解釋「電視」?
- 為什么要學習編程,編程對你而言的樂趣在哪兒?
- 如果一個函式10次中有7次正確,3次錯誤,問題可能出現在哪里?
- 自身最大優點是什么,怎么證明?
- 有沒有在 GitHub 上發布過開源代碼,參與過開源專案?
- 你最近遇到過的一個技術挑戰是什么?怎么解決的?
- 開發常用的工具有哪些?
- 熟悉 CocoaPods 么?能大概講一下作業原理么?
- 最常用的版本控制工具是什么,能大概講講原理么?
- 今年你最想掌握的一門技術是什么?為什么?目前已經做到了哪個程度?
- 你一般是怎么用 Instruments 的?
- 你一般是如何除錯 Bug 的?
- 你在你的專案中用到了哪些設計模式?
- 如何實作單例,單例會有什么弊端?
- iOS 是如何管理記憶體的?
知識性問題
- 什么是回應鏈,它是怎么作業的?
- 如何訪問并修改一個類的私有屬性?
- iOS Extension 是什么?能列舉幾個常用的 Extension 么?
- 如何把一個包含自定義物件的陣列序列化到磁盤?
- Apple Pay 是什么?它的大概作業流程是怎樣的?
- iOS 的沙盒目錄結構是怎樣的? App Bundle 里面都有什么?
- iOS 的簽名機制大概是怎樣的?
- Objective-C 的
class是如何實作的?Selector是如何被轉化為 C 語言的函式呼叫的? UIScrollView大概是如何實作的,它是如何捕捉、回應手勢的?- Objective-C 如何對已有的方法,添加自己的功能代碼以實作類似記錄日志這樣的功能?
+load和+initialize的區別是什么?- 如何讓 Category 支持屬性?
NSOperation相比于 GCD 有哪些優勢?strong/weak/unsafe_unretained的區別?- 如何為 Class 定義一個對外只讀對內可讀寫的屬性?
- Objective-C 中,meta-class 指的是什么?
UIView和CALayer之間的關系?+[UIView animateWithDuration:animations:completion:]內部大概是如何實作的?- 什么時候會發生「隱式影片」?
- 如何處理異步的網路請求?
frame和bounds的區別是什么?- 如何把一張大圖縮小為1/4大小的縮略圖?
- 一個 App 會處于哪些狀態?
- Push Notification 是如何作業的?
- 什么是 Runloop?
- Toll-Free Bridging 是什么?什么情況下會使用?
- 當系統出現記憶體警告時會發生什么?
- 什么是
Protocol,Delegate 一般是怎么用的? - autorelease 物件在什么情況下會被釋放?
- UIWebView 有哪些性能問題?有沒有可替代的方案,
- 為什么 NotificationCenter 要 removeObserver? 如何實作自動 remove?
- 當
TableView的Cell改變時,如何讓這些改變以影片的形式呈現? - 什么是
Method Swizzle,什么情況下會使用?
經驗類問題
- 為什么
UIScrollView的滾動會導致NSTimer失效? - 為什么當 Core Animation 完成時,layer 又會恢復到原先的狀態?
- 你會如何存盤用戶的一些敏感資訊,如登錄的 token,
- 有用過一些開源組件吧,能簡單說幾個么,大概說說它們的使用場景實作,
- 什么時候會發生
EXC BAD ACCESS例外? - 什么時候會使用 Core Graphics,有什么注意事項么?
- NSNotification 和 KVO 的使用場景?
- 使用 Block 時需要注意哪些問題?
performSelector:withObject:afterDelay:內部大概是怎么實作的,有什么注意事項么?- 如何播放 GIF 圖片,有什么優化方案么?
- 使用
NSUserDefaults時,如何處理布爾的默認值?(比如回傳 NO,不知道是真的 NO 還是沒有設定過) - 有哪幾種方式可以對圖片進行縮放,使用 CoreGraphics 縮放時有什么注意事項?
- 哪些途徑可以讓 ViewController 瘦下來?
- 有哪些常見的 Crash 場景?
綜合類問題
- 設計一個可以無限滾動并且支持自動滾動的 SlideShow,
- 設計一個進度條,
- 設計一套大檔案(如上百M的視頻)下載方案,
- 如果讓你來實作
dispatch_once,你會怎么做? - 設計一個類似 iOS 主屏可以下拉出現 Spotlight 的系統,(對 UIScrollView 的理解程度)
文章到這里就結束了,感謝你的觀看,只是有些話想對讀者們說說:
iOS開發人群越來越少,說實在的,每次在后臺看到一些讀者的回應都覺得很欣慰,至少你們依然堅守iOS技術崗…為了感謝讀者們,我想把我收藏的一些編程干貨貢獻給大家,回饋每一個讀者,希望能幫到你們,
干貨主要有:
-
① iOS中高級開發必看的熱門書籍(經典必看)
-
② iOS全套"大廠面試指導"視頻
-
③ BAT等各個大廠iOS面試真題+答案大全
-
④ iOS開發高級面試"簡歷制作"指導+模板參考
如果你用得到的話可以直接拿走;如何獲取,具體內容請轉看-我的GitHub
我的:GitHub地址
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/286141.html
標籤:iOS
