前言: 最近在整理自己的技術棧,收集了一些自己認為比較重要的知識點分享給大家。 Runloop 1. iOS中觸摸事件傳遞和響應原理 2. 為什麼只有主線程的runloop是開啟的 3. 為什麼只在主線程刷新UI 4. PerformSelector和runloop的關係 5.GCD 在Runloo ...
前言:
最近在整理自己的技術棧,收集了一些自己認為比較重要的知識點分享給大家。
Runloop
Runtime
2.isa指針的理解,對象的isa指針指向哪裡?isa指針有哪兩種類型?
5.講一下 OC 的消息機制
6.runtime具體應用
7.runtime如何通過selector找到對應的IMP地址?
8.簡述下Objective-C中調用方法的過程
9.load和initialize的區別
10.怎麼理解Objective-C是動態運行時語言。
KVO
2. 通過KVC修改屬性會觸發KVO麽?KVC的賦值和取值過程是怎樣的?原理是什麼?
Block
block
的內部實現,結構體是什麼樣的- block是類嗎,有哪些類型
- 一個
int
變數被__block
修飾與否的區別?block的變數截獲 block
在修改NSMutableArray
,需不需要添加__block
- 怎麼進行記憶體管理的
block
可以用strong
修飾嗎- 解決迴圈引用時為什麼要用
__strong、__weak
修飾 block
發生copy
時機Block
訪問對象類型的auto變數
時,在ARC和MRC
下有什麼區別
多線程
主要以GCD為主
iOS
開發中有多少類型的線程?分別對比GCD
有哪些隊列,預設提供哪些隊列GCD
有哪些方法apiGCD
主線程 & 主隊列的關係- 如何實現同步,有多少方式就說多少
dispatch_once
實現原理- 什麼情況下會死鎖
- 有哪些類型的線程鎖,分別介紹下作用和使用場景
NSOperationQueue
中的maxConcurrentOperationCount
預設值NSTimer、CADisplayLink、dispatch_source_t
的優劣
架構設計
- 手動埋點、自動化埋點、可視化埋點
MVC、MVP、MVVM
設計模式- 常見的設計模式
- 單例的弊端
- 常見的路由方案,以及優缺點對比
- 如果保證項目的穩定性
- 設計一個圖片緩存框架(LRU)
- 如何設計一個
git diff
- 設計一個線程池?畫出你的架構圖
- 你的app架構是什麼,有什麼優缺點、為什麼這麼做、怎麼改進
數據結構
1.數據結構的存儲一般常用的有幾種?各有什麼特點?
2.集合結構 線性結構 樹形結構 圖形結構
3.單向鏈表 雙向鏈表 迴圈鏈表
4.數組和鏈表區別
5.堆、棧和隊列
6.輸入一棵二叉樹的根結點,求該樹的深度?
7.輸入一課二叉樹的根結點,判斷該樹是不是平衡二叉樹?
8.字元串處理
這是我的iOS開發交流群:519832104不管你是小白還是大牛歡迎入駐,可以一起分享經驗,討論技術,共同學習成長!
另附上一份各好友收集的大廠面試題,需要iOS開發學習資料、面試真題,進群即可自行下載!
點擊此處,立即與iOS大牛交流學習
演算法
1.時間複雜度
2.空間複雜度
3.常用的排序演算法
4.字元串反轉
5.鏈表反轉(頭差法)
6.有序數組合併
7.查找第一個只出現一次的字元(Hash查找)
8.查找兩個子視圖的共同父視圖
9.無序數組中的中位數(快排思想)
10.給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。
11.八大排序演算法
Foundation
1.nil、NIL、NSNULL 有什麼區別?
2.如何實現一個線程安全的 NSMutableArray?
3.atomic 修飾的屬性是絕對安全的嗎?為什麼?
4.實現 isEqual 和 hash 方法時要註意什麼?
5.id 和 instanceType 有什麼區別?
6.self和super的區別
7.@synthesize和@dynamic分別有什麼作用?
8.typeof 和 typeof,typeof 的區別?
9.類族
10.struct和class的區別
UIKit
1.UIView 和 CALayer 是什麼關係?
2.Bounds 和 Frame 的區別?
3.setNeedsDisplay 和 layoutIfNeeded 兩者是什麼關係?
4.談談對UIResponder的理解
5.loadView的作用?
6.使用 drawRect有什麼影響?
7.keyWindow 和 delegate的window有何區別
動畫
1.UIView動畫與核心動畫的區別?
2.當我們要做一些基於 CALayer 的動畫時,有時需要設置 layer的錨點來配合動畫,這時候我們需要註意什麼?
圖像處理
1.圖像的壓縮方式
2.如何計算圖片載入記憶體中所占的大小
數據安全及加密
1.對稱加密和非對稱加密的區別?
2.簡述 SSL 加密的過程用了哪些加密方法,為何這麼作?
3.iOS的簽名機制是怎麼樣的
WebView
- JS 和 OC 互相調用的幾種方式?
2.在使用 WKWedView 時遇到過哪些問題?
組件化
1.組件化有什麼好處?
2.你是如何組件化解耦的?
3.為什麼CTMediator方案優於基於Router的方案?
4.基於CTMediator的組件化方案,有哪些核心組成?
調試技巧
1.LLDB常用的調試命令?
2.斷點調試
3.iOS 常見的崩潰類型有哪些?
源碼理解
1.YYKit
2.SDWebImage載入圖片過程
3.YYWebImage和SDWebImage對比
4.AFNetworking 底層原理分析
代碼管理
1.SVN與Git優缺點比較
2.Git與SVN的區別
持續集成
1.你在項目中使用過什麼持續集成方式?
2.jenkins怎麼備份恢復
3.jenkins你都用了哪些插件?