1. 程式人生 > >iOS 基礎面試題彙總

iOS 基礎面試題彙總

 

系統學習推薦一些經典書籍:
《Effective Objective-C 2.0》
《Objective-C 高階程式設計》
《劍指Offer》
《程式設計師的自我修養》

 

本文收錄了一些 iOS 常見的面試題目,重點是要理解其背後原理實現,知道其具體應用場景。

1.Runloop 的實現原理和資料結構,及其應用?

包括 Runloop 與執行緒的關係,Runloop 的 Mode 等

參考:深入理解 Runloop

2.談談對 runtime 的理解,及其應用, 為什麼稱 OC 為動態語言?

包括 isa 指標, SEL,  IMP,MetaClass,objec_msgSend, Method Swizzling,Objective-C Associated Objects 等

參考:iOS Runtime 詳解Objective-C runtime

3.記憶體管理 ARC, MRC

包括記憶體洩露,野指標,迴圈引用,記憶體洩露除錯工具,堆,棧等

參考:iOS 記憶體管理詳解

4.iOS 訊息傳遞機制

參考:iOS 訊息傳遞機制

5.多執行緒,哪些場景需要開闢執行緒?

包括 NSTread, NSOperationQueue,CGD,同步鎖,主執行緒重新整理 UI,

同步,非同步,並行,序列

參考:iOS 中的多執行緒技術iOS 並行開發系列--並行開發其實很容易

6.Autoreleasepool 原理和使用場景

參考:

黑幕背後的 Autoreleasepool

7.App 的啟動過程

參考:深入理解 iOS App 的啟動過程

8.UIViewController 生命週期

參考:探究 UIViewController 生命週期

9.UIView 的繪製流程

包括 init, initwithcode, awake, layoutsubviews, drawrect 等方法的呼叫順序,使用xib, storyboard 的呼叫順序

setNeedsDisplay, layoutIfNeeded,hittest, pointinside

參考:談談 layoutSubviews 和 drawrect

UIView 的 hitTest 和pointInside 方法

10.UIView 的 layer

包括 anchorPoint,position,動畫

參考:iOS 開發系列--讓你的應用動起來

11.Block 本質

包括 __weak 和 __block,迴圈引用問題

參考:iOS Block 用法和實現原理

12.property 和 ivar 的區別

包括屬性關鍵字 strong,weak,assign, retain, copy, atomic, nonatomic,readonly, readwrite

參考:iOS 開發 @property 和 ivar 的區別OC MRC 成員變數, property, synthesize, dynamic

13.KVO 和 KVC,Delegate,單例, Notification等設計模式

14.static, const, extern 關鍵字的作用

參考:OC 中的 static,const,extern 的理解

15.Category 和 Extension, Protocol

16.iOS中常用的資料儲存方式有哪些?

包括 NSUserDefault,KeyChainplist,Archive(歸檔),SQLite,CoreData

17.iOS的沙盒目錄結構是怎樣的?

 

 

面試題參考:

  1. 2018 iOS 面試題及答案