一、Runtime
- 一個objc對象的isa的指針指向什么?有什么作用?
- 一個 NSObject 對象占用多少內(nèi)存空間?
- 說一下對 class_rw_t 的理解?
- 說一下對 class_ro_t 的理解?
- 說一下對 isa 指針的理解
- 說一下 Runtime 的方法緩存?存儲的形式、數(shù)據(jù)結(jié)構(gòu)以及查找的過程?
- 使用runtime Associate方法關(guān)聯(lián)的對象,需要在主對象dealloc的時候釋放么?
- 實例對象的數(shù)據(jù)結(jié)構(gòu)?
- 什么是method swizzling(俗稱黑魔法)
- 什么時候會報unrecognized selector的異常?
- 如何給 Category 添加屬性?關(guān)聯(lián)對象以什么形式進行存儲?
- 能否向編譯后得到的類中增加實例變量?能否向運行時創(chuàng)建的類中添加實例變量?為什么?
- 類對象的數(shù)據(jù)結(jié)構(gòu)?
- runtime如何通過selector找到對應(yīng)的IMP地址?
- runtime如何實現(xiàn)weak變量的自動置nil?知道SideTable嗎?
- objc中向一個nil對象發(fā)送消息將會發(fā)生什么?
- objc在向一個對象發(fā)送消息時,發(fā)生了什么?
- isKindOfClass 與 isMemberOfClass
- Category 在編譯過后,是在什么時機與原有的類合并到一起的?
- Category 有哪些用途?
- Category 的實現(xiàn)原理?
- _objc_msgForward函數(shù)是做什么的
- [self class] 與 [super class]
- 代碼題 一
- 代碼題 二
二、Runloop
- 為什么 NSTimer 有時候不好使?
- AFNetworking 中如何運用 Runloop?
- autoreleasePool 在何時被釋放?
- PerformSelector 的實現(xiàn)原理?
- PerformSelector:afterDelay:這個方法在子線程中是否起作用?為什么?怎么解決?
- RunLoop的Mode
- RunLoop的實現(xiàn)機制
- RunLoop和線程
- RunLoop的數(shù)據(jù)結(jié)構(gòu)
- RunLoop概念
- RunLoop與NSTimer
- 講一下 Observer ?
- 解釋一下 NSTimer
- 解釋一下
事件響應(yīng)的過程? - 解釋一下 手勢識別 的過程?
- 什么是異步繪制?
- 利用 runloop 解釋一下頁面的渲染的過程?
三、Objective_C語言特性
四、Animation
五、Block
六、UI相關(guān)
七、多線程
- 進程、線程
- 多進程、多線程
- 任務(wù)、隊列
- iOS中的多線程
- GCD---隊列
- 死鎖
- GCD任務(wù)執(zhí)行順序
- dispatch_barrier_async
- dispatch_group_async
- Dispatch Semaphore
- 延時函數(shù)(dispatch_after)
- 使用dispatch_once實現(xiàn)單例
- NSOperationQueue的優(yōu)點
- NSOperation和NSOperationQueue
- NSThread+runloop實現(xiàn)常駐線程
- 自旋鎖與互斥鎖
八、內(nèi)存管理
- 在 Obj-C 中,如何檢測內(nèi)存泄漏?你知道哪些方式?
- 在 MRC 下如何重寫屬性的 Setter 和 Getter_
- 循環(huán)引用
- 說一下什么是
懸垂指針?什么是野指針? - 說一下對 retain,copy,assign,weak,_Unsafe_Unretain 關(guān)鍵字的理解
- 是否了解 深拷貝 和 淺拷貝 的概念,集合類深拷貝如何實現(xiàn)
- 使用自動引用計數(shù)應(yīng)遵循的原則
- 能不能簡述一下 Dealloc 的實現(xiàn)機制
- 內(nèi)存中的5大區(qū)分別是什么?
- 內(nèi)存管理默認(rèn)的關(guān)鍵字是什么?
- 內(nèi)存管理方案
- 內(nèi)存布局
- 講一下
iOS內(nèi)存管理的理解 - 講一下
@dynamic關(guān)鍵字? - 簡要說一下
@autoreleasePool的數(shù)據(jù)結(jié)構(gòu)? - 訪問
__weak修飾的變量,是否已經(jīng)被注冊在了@autoreleasePool中?為什么? retain、release的實現(xiàn)機制?- MRC(手動引用計數(shù))和ARC(自動引用計數(shù))
BAD_ACCESS在什么情況下出現(xiàn)?autoReleasePool什么時候釋放?- ARC自動內(nèi)存管理的原則
ARC在運行時做了哪些工作?ARC在編譯時做了哪些工作ARC的retainCount怎么存儲的?__weak屬性修飾的變量,如何實現(xiàn)在變量沒有強引用后自動置為nil?__weak和_Unsafe_Unretain的區(qū)別?
九、設(shè)計模式
十、數(shù)據(jù)安全及加密
十一、數(shù)據(jù)結(jié)構(gòu)與算法
十二、網(wǎng)絡(luò)相關(guān)
- HTTP協(xié)議
- HTTPS、對稱加密、非對稱加密
- 一個基于UDP的簡單的聊天Demo
- UDP的特點、UDP的報文結(jié)構(gòu)及差錯檢測
- TCP、三次握手、四次揮手、代碼實現(xiàn)
- 可靠數(shù)據(jù)傳輸、流量控制(滑動窗口)、擁塞控制
- DNS
- Cookie和Session
- IP協(xié)議、IP數(shù)據(jù)報分片、IPv4編址、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
- IPv6、從IPv4到IPv6的遷移
十三、性能優(yōu)化
- iOS 性能優(yōu)化面試題
- 光柵化
- 日常如何檢查內(nèi)存泄露?
- 如何高性能的畫一個圓角?
- 如何提升
tableview的流暢度? - 如何優(yōu)化
APP的電量? - 如何有效降低 APP 包的大???
- 什么是 離屏渲染?什么情況下會觸發(fā)?該如何應(yīng)對?
- 如何檢測離屏渲染?
- 怎么檢測圖層混合?
面試題還在更新,請記得要關(guān)注該簡書哦~