iOS面試問題(一)

師大小海騰
iOS相關總結
南華Coder
iOS底層
Swift開發小記
MAC及Flutter

1、什麼是多態
2、@synthesize和@dynamic
3、block(底層結構和類型,循環引用, 使用類似_name訪問self的成員變量依然會循環引用)
4、deleagte
5、block和deleagte的優缺點
6、類的結構
7、消息發送過程以及轉發(https://minilv.github.io/2019/03/17/Runtime-消息機制土味講解/)
8、響應者鏈條
9、strong和copy (NSArray,NSMutableArray。。。)
10、assign和weak (SideTable)
11、ARC
12、TCP、UDP,三次握手,爲什麼要三次
13、http和https
14、kvc,kvo

1、類和分類(加載時機、方法調用順序、成員變量的添加)
2、isa(消息發送,方法查找,isMemberOfclass和isKindOfClass, Tagged Pointer對象影響isa的結構)
3、有用過runtime嗎?做了哪方面的實現
4、RunLoop和線程的關係 (https://www.jianshu.com/p/998093d10415
https://blog.ibireme.com/2015/05/18/runloop/
https://www.cnblogs.com/kenshincui/p/6823841.html)
5、AutoReleasePool (https://juejin.im/post/5e6fac36e51d4526e75003ef)
6、__autoreleasing
7、對象什麼時候釋放(自動釋放池,RunLoop添加的和自動釋放有關的observe)
8、NSTimer是否是精確的
9、鎖
10、多線程(GCD, NSOperation, NSThread,p_thread)
11、GCD柵欄,group
12、什麼情況下出現線程安全問題,如何保證安全

1、如何對包體積優化
2、如何對app啓動優化
3、還做過哪些方面的性能優化(UITableView,圓角。。。)
4、如何採集崩潰信息並上傳到後臺
5、如何防止崩潰(消息轉發避免找不到方法而崩潰,KVO參考KVOController SDK的實現,KVC找不到key崩潰,數組越界,字典value爲nil。。。)
6、如何獲取每個函數的執行時間
7、如何進行卡頓檢測並上傳到後臺
8、動態庫靜態庫

1、一個view當中添加了多個子view,每個子view中也添加了多個view,打印每個view(遞歸,while)
2、大數相乘(大數是指計算機無法存儲的數字,比如1231231231231237918723198327192837192,用字符串表示,直接逐位相乘)
3、二叉樹遍歷(廣度,深度)
4、旋轉有序數組一次,找最小值
5、旋轉有序數組二次,找最小值
6、若干紅白黑小球,按照紅,白,黑的順序排列,要求進行一次遍歷,不可藉助隊列,棧

算法相關

一: 美柚
反轉單鏈表
二: 瓜子
1 二叉樹的深度
2 判斷鏡像二叉樹
三: 跟誰學(19.4月份)
反轉字符串
四: 贏錢罐 (19.4月份)
字符串轉數字
非遞歸求第N個斐波那契

五: 滴滴
A B兩個子串, 子串由空格分割 如"aaab absd addab",如果A的最小字符個數 小於B中子串的最小字符個數, 則該子串b的絕對子串
如 A “ab bd addab”
B “aa abcd”
則 ab < aa bd < aa 爲2
bd < aa 爲1
返回[2, 1]


1 遞歸求[a, b]區間, 每次跳躍K個單位的和
2 字符串 圖片壓縮算法思想
3 刪除字符串S中的所有重複字符串 aaaab -> ab
4 二叉樹層序遍歷
5 a, b兩個有序數字字符串,返回a b中都有, 該數字以及在a的個數(大數據)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章