今年參加了很多面試莲趣,看看我的面試題是哪些
我遇到的能想起來的面試題
- 什么事Runloop?簡述Runloop的執(zhí)行順序、用Runloop實現(xiàn)一個后臺常駐線程劲适。
參考 https://juejin.cn/post/6868551023439544333 - 列舉幾種實現(xiàn)延遲調(diào)用的方法辐啄?
- 簡述面向過程與面向?qū)ο蟮膮^(qū)別,面向?qū)ο笥心男┨匦裕?/li>
- 簡述動態(tài)庫和靜態(tài)庫的區(qū)別惧笛,ios中動態(tài)庫和靜態(tài)庫的表現(xiàn)形式分別是什么?簡述.a 和 .framework的區(qū)別逞泄?
- 如何實現(xiàn)OC與Swift的混編患整?
- 簡述項目中使用過的APP優(yōu)化策略,不限于啟動優(yōu)化喷众、UI卡頓優(yōu)化等各谚?
參考 http://www.reibang.com/p/024b3d847fe0
http://www.reibang.com/p/80f72cdb0aa9 - 消息轉(zhuǎn)發(fā)原理 ?消息轉(zhuǎn)發(fā)機制到千?
參考 http://www.reibang.com/p/6c219728bf68 - coacoapods 中的pod init昌渤,和pod update 的區(qū)別?
- 組件化是怎么實現(xiàn)的憔四?
- 簡述下你常用的第三方庫有哪些膀息?并闡述你熟悉的某個第三方庫的實現(xiàn)原理?
- runTime的理解
- autoRelease的理解
- load什么時候調(diào)用了赵?
參考 https://juejin.cn/post/6884133502401396744 - block 的實現(xiàn)機制是什么潜支?調(diào)用外部變量為什么要用__block ? __block
和 weak,strong 的區(qū)別柿汛?
參考: http://www.reibang.com/p/221d0778dcaa
心得:
- block就是一個對象冗酿,把要實現(xiàn)的方法賦值給此對象屬性,
- block調(diào)用外部的值類型變量络断,就是在聲明block時裁替,就把值傳遞給了block,所以之后修改值對block無影響貌笨,block捕獲的是值胯究。
- 如果值變量用static修飾,block捕獲的是值變量的地址躁绸;
block修改全局變量: block并沒有把num作為參數(shù),_block_func_0中也是直接訪問全局變量. - block使用self時,會捕獲self净刮,block會聲明個self類型的strong屬性<self>,block強引用self剥哑,同時self也會強引用block,
- 使用Weak解除block循環(huán)引用時淹父,block會聲明個self類型的weak屬性<weakself>株婴,解除循環(huán)
- clang 可以查看 源碼block原理 參考 https://www.sohu.com/a/319619700_208051
clang 報錯參考 http://www.reibang.com/p/741b550db5a9 - strong,copy的區(qū)別 參考 http://www.reibang.com/p/62913d6cbc40
weak暑认,strong 怎么實現(xiàn)內(nèi)存管理的困介?
簡述下 mvc,mvp蘸际,mvvM
loadview,viewdidload,viewdidunload 都什么時候調(diào)用座哩,主要處理什么?
常用的加密方法有哪些粮彤?
參考:http://www.reibang.com/p/cee228aabdbc怎么保證APP的安全的根穷?
說說你對 堆,棧导坟,靜態(tài)區(qū)域的理解屿良?
參考 https://www.cnblogs.com/codetime/p/7353434.html
http://www.reibang.com/p/eaa20cf39ad5alloc,init ,new
參考 http://www.reibang.com/p/b0324891661ciOS開發(fā)之+load與+initialize
參考 http://www.reibang.com/p/7a5610d5802f單例是怎么實現(xiàn)的?怎么避免單例被多次創(chuàng)建惫周?
http://www.cocoachina.com/articles/21300ios內(nèi)存管理是怎么實現(xiàn)的尘惧?
加密方式有哪些?對稱加密和非對稱加密的區(qū)別递递?
http 和https 的區(qū)別喷橙?
App 啟動時 經(jīng)歷了什么?
http://www.reibang.com/p/ecfb61b68c89
https://zhuanlan.zhihu.com/p/28600469mvc漾狼,MVP重慢,mvvm的區(qū)別?
http://www.reibang.com/p/d39a5eee48d7
附代碼demo https://blog.csdn.net/xiaozhuanddapang/article/details/78553215
有示例代碼 http://www.reibang.com/p/2c80175044f6wkwebview 性能優(yōu)化逊躁,緩存處理似踱?
int 值傳遞,地址傳遞稽煤?
各種第三方框架實現(xiàn)原理核芽,AFnetWoring,MJExtion,SDwebimage
UI事件傳遞原理?
hitTestswift 什么時候用stuct 什么時候用class酵熙?
swift面試題 別人整理的
http://www.reibang.com/p/e7eeff77adcd
記錄
- ios分層架構(gòu)設(shè)計 參考http://www.reibang.com/p/1de2a8ac7b2d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
ps備注:
查看底層源碼的命令
clang -rewrite-objc main.m
clang -rewrite-objc -framework Foundation main.m
clang -rewrite-objc -fobjc-arc -fobjc-runtime=macosx-11.2.3 main.m