iOS 基礎面試題彙總

系統學習推薦一些經典書籍:
《Effective Objective-C 2.0》
《Objective-C 高級編程》
《劍指Offer》
《程序員的自我修養》


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

1.Runloop 的實現原理和數據結構,及其應用?html

包括 Runloop 與線程的關係,Runloop 的 Mode 等ios

參考:git

深刻理解 Runloop程序員

iOS Runloop 詳解github

iOS 刨根問底--深刻理解 Runloop面試


2.談談對 runtime 的理解,及其應用, 爲何稱 OC 爲動態語言?編程

包括 isa 指針, SEL,  IMP,MetaClass,objec_msgSend, Method Swizzling,Objective-C Associated Objects 等設計模式

參考:數據結構

Objective-C Runtime多線程

iOS運行時(Runtime)詳解+Demo

iOS 消息發送與轉發詳解

[iOS] runtime 的使用場景--實戰篇


runtime 應用:

Method Swizzling OC 實現:

iOS runtime實戰應用:Method Swizzling

Method Swizzling Swift 實現:

如何優雅地在Swift4中實現Method-Swizzling

遍歷對象的屬性:

iOS runtime實戰應用:成員變量和屬性

class_copyPropertyList與class_copyIvarList區別,獲取屬性,使用runtime方法的注意事項

ios開發 @property 和 Ivar 的區別


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

iOS 面試之@property


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 面試題及答案
相關文章
相關標籤/搜索