今年參加了很多面試,看看我的面試題是哪些
我遇到的能想起來(lái)的面試題
- 什么事Runloop?簡(jiǎn)述Runloop的執(zhí)行順序、用Runloop實(shí)現(xiàn)一個(gè)后臺(tái)常駐線(xiàn)程。
參考 https://juejin.cn/post/6868551023439544333 - 列舉幾種實(shí)現(xiàn)延遲調(diào)用的方法?
- 簡(jiǎn)述面向過(guò)程與面向?qū)ο蟮膮^(qū)別,面向?qū)ο笥心男┨匦裕?/li>
- 簡(jiǎn)述動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的區(qū)別,ios中動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的表現(xiàn)形式分別是什么?簡(jiǎn)述.a 和 .framework的區(qū)別?
- 如何實(shí)現(xiàn)OC與Swift的混編?
- 簡(jiǎn)述項(xiàng)目中使用過(guò)的APP優(yōu)化策略,不限于啟動(dòng)優(yōu)化、UI卡頓優(yōu)化等?
參考 http://m.itdecent.cn/p/024b3d847fe0
http://m.itdecent.cn/p/80f72cdb0aa9 - 消息轉(zhuǎn)發(fā)原理 ?消息轉(zhuǎn)發(fā)機(jī)制?
參考 http://m.itdecent.cn/p/6c219728bf68 - coacoapods 中的pod init,和pod update 的區(qū)別?
- 組件化是怎么實(shí)現(xiàn)的?
- 簡(jiǎn)述下你常用的第三方庫(kù)有哪些?并闡述你熟悉的某個(gè)第三方庫(kù)的實(shí)現(xiàn)原理?
- runTime的理解
- autoRelease的理解
- load什么時(shí)候調(diào)用?
參考 https://juejin.cn/post/6884133502401396744 - block 的實(shí)現(xiàn)機(jī)制是什么?調(diào)用外部變量為什么要用__block ? __block
和 weak,strong 的區(qū)別?
參考: http://m.itdecent.cn/p/221d0778dcaa
心得:
- block就是一個(gè)對(duì)象,把要實(shí)現(xiàn)的方法賦值給此對(duì)象屬性,
- block調(diào)用外部的值類(lèi)型變量,就是在聲明block時(shí),就把值傳遞給了block,所以之后修改值對(duì)block無(wú)影響,block捕獲的是值。
- 如果值變量用static修飾,block捕獲的是值變量的地址;
block修改全局變量: block并沒(méi)有把num作為參數(shù),_block_func_0中也是直接訪(fǎng)問(wèn)全局變量. - block使用self時(shí),會(huì)捕獲self,block會(huì)聲明個(gè)self類(lèi)型的strong屬性<self>,block強(qiáng)引用self,同時(shí)self也會(huì)強(qiáng)引用block,
- 使用Weak解除block循環(huán)引用時(shí),block會(huì)聲明個(gè)self類(lèi)型的weak屬性<weakself>,解除循環(huán)
- clang 可以查看 源碼block原理 參考 https://www.sohu.com/a/319619700_208051
clang 報(bào)錯(cuò)參考 http://m.itdecent.cn/p/741b550db5a9 - strong,copy的區(qū)別 參考 http://m.itdecent.cn/p/62913d6cbc40
weak,strong 怎么實(shí)現(xiàn)內(nèi)存管理的?
簡(jiǎn)述下 mvc,mvp,mvvM
loadview,viewdidload,viewdidunload 都什么時(shí)候調(diào)用,主要處理什么?
常用的加密方法有哪些?
參考:http://m.itdecent.cn/p/cee228aabdbc怎么保證APP的安全的?
說(shuō)說(shuō)你對(duì) 堆,棧,靜態(tài)區(qū)域的理解?
參考 https://www.cnblogs.com/codetime/p/7353434.html
http://m.itdecent.cn/p/eaa20cf39ad5alloc,init ,new
參考 http://m.itdecent.cn/p/b0324891661ciOS開(kāi)發(fā)之+load與+initialize
參考 http://m.itdecent.cn/p/7a5610d5802f單例是怎么實(shí)現(xiàn)的?怎么避免單例被多次創(chuàng)建?
http://www.cocoachina.com/articles/21300ios內(nèi)存管理是怎么實(shí)現(xiàn)的?
加密方式有哪些?對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密的區(qū)別?
http 和https 的區(qū)別?
App 啟動(dòng)時(shí) 經(jīng)歷了什么?
http://m.itdecent.cn/p/ecfb61b68c89
https://zhuanlan.zhihu.com/p/28600469多線(xiàn)程
http://m.itdecent.cn/p/5593af00c597mvc,MVP,mvvm的區(qū)別?
http://m.itdecent.cn/p/d39a5eee48d7
附代碼demo https://blog.csdn.net/xiaozhuanddapang/article/details/78553215
有示例代碼 http://m.itdecent.cn/p/2c80175044f6wkwebview 性能優(yōu)化,緩存處理?
int 值傳遞,地址傳遞?
各種第三方框架實(shí)現(xiàn)原理,AFnetWoring,MJExtion,SDwebimage
UI事件傳遞原理?
hitTestswift 什么時(shí)候用stuct 什么時(shí)候用class?
swift面試題 別人整理的
http://m.itdecent.cn/p/e7eeff77adcd
記錄
- ios分層架構(gòu)設(shè)計(jì) 參考http://m.itdecent.cn/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