最近的ios面試

ios面試題整理



? ? 先把阿里口碑的電話面試說下吧,問了我最近做過的需求,我回答說改版了登錄注冊(cè)模塊俏拱,于是問我從登錄到后臺(tái)驗(yàn)證的整個(gè)過程以及如何加密?? 看我簡歷寫了封裝圖片下載緩存埃篓,于是問了我圖片緩存策略雷恃、歸檔以什么作為key疆股、什么作為文件名? 到后面問到我NSArray和NSDictionary的作用和區(qū)別? https://blog.csdn.net/Deft_MKJing/article/details/82732833?utm_source=app

? ? 其他的幾家作一個(gè)匯總吧

1.你對(duì)MVC的理解

2.GCD如何實(shí)現(xiàn)多個(gè)并發(fā)全部完成后再進(jìn)行通知?dispatch_group方法會(huì)創(chuàng)建新線程嗎褂萧?

3.LLVM和Clang是什么

4.熱部署是什么

5.byte和bit的區(qū)別

6.ios main函數(shù)執(zhí)行了些什么操作??http://blog.sunnyxx.com/2014/08/30/objc-pre-main/

7.類別為什么添加不了屬性? 附上不錯(cuò)的回答:https://www.zhihu.com/question/51513146

8.category重寫的方法為什么會(huì)先執(zhí)行?http://www.reibang.com/p/4cd699a66f9b

根據(jù)runtime的消息傳遞機(jī)制中的核心函數(shù)void objc_msgSend(id self,SEL cmd,...)來發(fā)送消息押桃,先從當(dāng)前類中查找調(diào)用的方法,若沒有找到則繼續(xù)從其父類中一層層往上找导犹,那么對(duì)于category重寫同一個(gè)方法唱凯,則在消息傳遞的過程中,會(huì)最先找到category中的方法并執(zhí)行該方法谎痢。對(duì)于多個(gè)分類調(diào)用同一個(gè)方法磕昼,Xcode在運(yùn)行時(shí)是根據(jù)buildPhases->Compile Sources里面的從上至下順序編譯的,編譯時(shí)通過壓棧的方式將多個(gè)分類壓棧节猿,根據(jù)后進(jìn)先出的原則票从,后編譯的會(huì)被先調(diào)用,當(dāng)objc_msgSend找到方法并調(diào)用之后滨嘱,就不再繼續(xù)傳遞消息峰鄙,所以形成所謂上的覆蓋。并不是后面創(chuàng)建的就一定被調(diào)用太雨,得看創(chuàng)建之后其在buildPhases->Compile Sources里面的位置吟榴。

9.tableView有哪些delegate和dataSource方法,哪個(gè)方法先執(zhí)行

10.輪播圖的幾種實(shí)現(xiàn)方式

11.appDelegate的幾種代理方法

12.https ssl 原理? ?https://cloud.tencent.com/developer/article/1601995

13.如果讓你自己封裝網(wǎng)絡(luò)請(qǐng)求庫囊扳,你會(huì)用NSURLConnection還是NSURLSession吩翻,異步方法如何實(shí)現(xiàn)

14.Method Swizzing是如何實(shí)現(xiàn)的? (修改method中SEL和IMP的對(duì)應(yīng)關(guān)系(IMP函數(shù)指針指向))



待續(xù)~~~~~

2.5號(hào)? 晚上接到攜程的電話面試

1.用戶點(diǎn)擊屏幕的響應(yīng)過程? ?http://www.cocoachina.com/articles/14896

2.category 和 extension的區(qū)別??http://www.reibang.com/p/a5e517a3064b

3.通知是同步的還是異步的

4.https 客戶端和服務(wù)端交互過程? (域名解析,建立連接, 客戶端發(fā)送請(qǐng)求锥咸,服務(wù)端響應(yīng)請(qǐng)求)

5.DNS如何解析域名的

6.get請(qǐng)求和post請(qǐng)求的區(qū)別??https://www.cnblogs.com/logsharing/p/8448446.html

7.ARC造成內(nèi)存泄漏的幾種情況(NSTimer狭瞎、delegate、block搏予、非OC類的方法)

7.load方法在main函數(shù)之前還是之后執(zhí)行 (前)

待續(xù)~~~

---- 2019.6.13 準(zhǔn)備面試了 -------

消息轉(zhuǎn)發(fā)??http://www.reibang.com/p/f9bd98ad5b05

dispatch_group_enter熊锭、dispatch_group_leave配合使用,如果不使用的話 雪侥,異步里異步并發(fā)會(huì)出現(xiàn)問題?http://www.reibang.com/p/d840fb75e668

NSDictionary和NSArray的底層原理??https://blog.csdn.net/Deft_MKJing/article/details/82732833

isEqual和hash? ?https://blog.csdn.net/hx_lei/article/details/53885798

JavaScript異步機(jī)制??https://www.cnblogs.com/zhaodongyu/p/3922961.html

---7.29-----

1.KVC的底層原理??https://blog.csdn.net/qq_18505715/article/details/80205796

KVO的原理?http://www.reibang.com/p/a8195d182742

2.React框架如何讓iOS原生和JS交互

3.項(xiàng)目中react-native整體架構(gòu)

4.runtime的理解球涛, 項(xiàng)目中運(yùn)用到runtime的地方

5.props和state的區(qū)別?

6.react-native如何渲染組件的(虛擬DOM....)

7.ES6(react)中import導(dǎo)入時(shí),有的帶花括號(hào){},有的不帶(export default導(dǎo)出不帶校镐,默認(rèn)導(dǎo)出只能有一個(gè),其他的export需要{}? https://blog.csdn.net/Chris__wang/article/details/82977626

https://blog.csdn.net/Deft_MKJing/article/details/82732833?utm_source=app

-----8.19? 攜程 根據(jù)簡歷面的-----

1.MVC https://www.cnblogs.com/QianChia/p/5771082.html捺典、MVP?http://www.cocoachina.com/articles/21062

2.iOS實(shí)現(xiàn)多繼承的方式(protocol, category, 消息轉(zhuǎn)發(fā))

4.strong和copy的區(qū)別

5.如果在一個(gè)方法里聲明block鸟廓,block里引用了self會(huì)造成循環(huán)引用嗎?(不會(huì),需要聲明成@property和當(dāng)前類互相強(qiáng)引用 http://www.reibang.com/p/fc2f4d207d25)引谜,調(diào)用系統(tǒng)的block方法并且引用self也不會(huì)造成循環(huán)引用牍陌,比如[UIView animateWithDuration...]

6.dispatch_group 如果有兩個(gè)dispatch_enter,三個(gè)dispatch_leave會(huì)出現(xiàn)什么情況(enter和leave不對(duì)等)? 答:crash? ?http://www.reibang.com/p/d7b6dfdb7181

7.delegate和notification的區(qū)別

8.tableView優(yōu)化 (如果一個(gè)cell有幾張圖片的話员咽,runloop每次循環(huán)只加載一張圖片? http://www.reibang.com/p/30f7ced70083

-----8.29? 京東 -----

1.runloop毒涧、autorelease原理? ? ? http://www.reibang.com/p/d260d18dd551

2.RN的通信原理

3.組件化的理解

4.block的理解? ?http://www.reibang.com/p/221d0778dcaa


-----------自己準(zhǔn)備的一些題-----------------

1.load和initialize的區(qū)別 : (1) load在main函數(shù)之前,initialize在main函數(shù)之后 (2)load只要裝載進(jìn)內(nèi)存就會(huì)調(diào)用, initialize當(dāng)?shù)谝淮问褂眠@個(gè)類或者其子類就會(huì)調(diào)用(3)如果父類或者子類的category實(shí)現(xiàn)了initialize方法贝室,那么父類或者子類不會(huì)調(diào)用自身的initialize契讲,只會(huì)調(diào)用對(duì)應(yīng)category的initialize方法,父類和子類有多個(gè)category也只會(huì)實(shí)現(xiàn)compile sources最底部的 (4)load方法先實(shí)現(xiàn)父類的滑频,然后子類的捡偏,最后才是父類和子類的category的,category的load調(diào)用順序按照compile sources從上而下


2.runtime json->model :? 遍歷json的key峡迷,class_getProperty(待轉(zhuǎn)的對(duì)象银伟,key)獲取property, 比如有個(gè)@property(nonatomic, strong)NSString *name;? ?property_getAttributes(property)獲取property的特征字符串,可以拿到property的類型比如NSString, 通過key獲取json對(duì)應(yīng)的value, 判斷value的類型是不是和上面通過property_getAttributes拿到的類型相同绘搞,類型相同則賦值彤避。

如果value的類型是string, property的類型是nsDate,可以轉(zhuǎn)換成nsDate再賦值,如果value的類型是NSDictionary(字典套字典)則將這個(gè)value遞歸調(diào)用該方法(這時(shí)候的待轉(zhuǎn)對(duì)象則應(yīng)該是第一個(gè)待轉(zhuǎn)對(duì)象其中的屬性 比如@property(nonatomiic, strong)Price *price;? ?這個(gè)Price對(duì)象)

如果value的類型是NSSArray夯辖,@property的類型也是NSArray(對(duì)象里有個(gè)數(shù)組琉预,數(shù)組里再套對(duì)象),則先定義好property對(duì)應(yīng)的NSArray的model類型楼雹,再遍歷value的array進(jìn)行相應(yīng)賦值


3.堆排序: 時(shí)間復(fù)雜度 n*log2n? ?不停地建立大頂堆/小頂堆模孩,建立完一次就替換首位位置然后去除尾部(尾部此時(shí)是最大或者最小)剩下的部分繼續(xù)建堆贮缅。?

為什么要逆序遍歷榨咐?答:首先堆排序針對(duì)的是一個(gè)絲毫不滿足最大堆特點(diǎn)的一個(gè)數(shù)組(0號(hào)位置不放元素),首先要從后向前調(diào)整每一個(gè)非葉子結(jié)點(diǎn)開始(也就是倒數(shù)第二層)谴供,這個(gè)是用來建立堆的(就是讓誤規(guī)律的變成有一定規(guī)律的)块茁,若你從前向后就會(huì)忽略另一條大分支樹,一條道走到黑了桂肌,不能正確建立堆数焊;后面可以從前往后調(diào)整的原因是只有最頂上的那個(gè)被換了,其他分支都是滿足最大堆的

4.method_swizziling 可以hook viewWillAppear等生命周期方法埋點(diǎn)崎场,比如統(tǒng)計(jì)用戶行為分析(用戶先瀏覽了首頁然后詳情頁然后支付頁...)

---------8.30京東------------

1.虛擬DOM是什么

2.自動(dòng)釋放池和runloop的關(guān)系佩耳?自動(dòng)釋放池的數(shù)據(jù)結(jié)構(gòu)

3.ARC有棧block嗎??http://www.reibang.com/p/19e6de8437f5(block講得不錯(cuò))

4.兩個(gè)棧模擬出一個(gè)隊(duì)列

5.事件攔截和消息轉(zhuǎn)發(fā)??http://www.reibang.com/p/db3518be5ebb

--------2020/5/19毒-------

1.kvo是什么模式 觀察者

2.自己如何實(shí)現(xiàn)通知(觀察者模式)不移除通知會(huì)有什么影響??http://www.reibang.com/p/4a44b9a15fe9

3.runloop如何喚醒? ? (source 和 timer)

4.atomic屬性怎么實(shí)現(xiàn)(鎖的機(jī)制)

5.swift如何實(shí)現(xiàn)代理協(xié)議枚舉,值類型引用類型谭跨, optional內(nèi)部實(shí)現(xiàn)

6.kvo生成的新子類實(shí)現(xiàn)了哪些方法干厚,有沒有g(shù)et方法??http://www.reibang.com/p/5477cf91bb32

-----2020/5/20 閱文集團(tuán)--------

1.為什么ios不用try catch (無法釋放)

2.LRU算法(哈希鏈表)

dispatch_barrier_async 和 dispatch_barrier_sync的區(qū)別?http://www.reibang.com/p/9ed95082f256

swift copy-on-write(寫時(shí)技術(shù))?https://blog.csdn.net/weixin_34417814/article/details/91366280

ios signal崩潰如何分析 (SIGABRT–程序中止命令中止信號(hào),SIGALRM–程序超時(shí)信號(hào),SIGFPE–程序浮點(diǎn)異常信號(hào)等李滴。。蛮瞄∷鳎可以獲取類型然后傳到service, EXC_BAD_ACCESS一般是內(nèi)存訪問出錯(cuò),對(duì)象內(nèi)存已經(jīng)釋放挂捅,但仍然在訪問會(huì)造成這樣的后果, 可以通過打開僵尸模式查找)

Person繼承NSObject, NSObject有個(gè)分類里的A方法芹助,Person能去調(diào)用嗎 (可以)

UIViewCtroller有tableview, cell有點(diǎn)擊方法,如果UIViewController的UIView設(shè)置tapGesture闲先,這時(shí)候會(huì)響應(yīng)cell還是uiview(響應(yīng)uiview, 手勢與響應(yīng)者鏈有一些差別状土,觸摸事件首先會(huì)傳遞到手勢上,如果手勢識(shí)別成功饵蒂,就會(huì)取消事件的繼續(xù)傳遞声诸。如果手勢識(shí)別失敗,事件才會(huì)被響應(yīng)鏈處理退盯。http://www.reibang.com/p/ea6bb96c0470)

-----2020/5/25 掌門1對(duì)1------

ARC 引用計(jì)數(shù)? 當(dāng)計(jì)數(shù)為0的時(shí)候?qū)ο髸?huì)自動(dòng)調(diào)用dealloc?http://www.reibang.com/p/e7b1651df746

copy修飾的NSMutableArray可以添加對(duì)象嗎(不可以彼乌,會(huì)崩潰,copy修飾的后變成不可變數(shù)組渊迁,不能調(diào)用add方法 http://www.reibang.com/p/869ca6fbdd5c

self class 和 super class的打印結(jié)果(相同? http://www.cocoachina.com/articles/10740

常見的內(nèi)存泄漏(循環(huán)引用慰照,nstimer,CoreFoundation對(duì)象(C對(duì)象)?)

weak對(duì)象什么時(shí)候釋放?https://www.cnblogs.com/guohai-stronger/p/10161870.html

有哪些鎖?http://www.reibang.com/p/6d6832e42936

網(wǎng)絡(luò)協(xié)議?

http有狀態(tài)無狀態(tài)(無狀態(tài)琉朽,通過cookie session https://www.cnblogs.com/bq-med/p/8603664.html)

----2020/5/26 百度一面------

1. iOS的各種鎖以及性能 (互斥和自旋毒租,互斥中遞歸和非遞歸的性能比較)

2.iOS性能優(yōu)化 優(yōu)化啟動(dòng)時(shí)間?https://zhuanlan.zhihu.com/p/28600469

3. 二叉樹的深度和最大寬度

4.md5 不可逆 加密后長度固定128位

5.為什么符號(hào)化可以看到具體崩潰的方法? ? ? ? ? ? ?崩潰日志對(duì)應(yīng)的 dSYM 文件(dSYM 是保存十六進(jìn)制函數(shù)地址映射信息的中轉(zhuǎn)文件,符號(hào)化過程中的十六進(jìn)制函數(shù)地址對(duì)應(yīng)的方法名函數(shù)名就保存在這個(gè)文件中)箱叁。http://www.reibang.com/p/c60d9578b656

------ --------

1.websocket 相關(guān)

TCP與UDP區(qū)別 (面向連接和無連接 墅垮,都是傳輸層協(xié)議....)

http的報(bào)文結(jié)構(gòu) (請(qǐng)求行請(qǐng)求頭請(qǐng)求體 響應(yīng)行響應(yīng)頭響應(yīng)體)?https://www.cnblogs.com/myseries/p/11239662.html

離屏渲染?http://www.reibang.com/p/cff0d1b3c915

cocoapods use_frameworks??http://www.reibang.com/p/f938b1e17974

---- blibli------

1.NSProxy實(shí)現(xiàn)hook(切面編程)?http://www.reibang.com/p/a7187e014c03

2.自己封裝的圖片緩存優(yōu)化點(diǎn)(結(jié)合LRU算法)

-----Swift 相關(guān) -------

1.struct 和 class區(qū)別

2.逃逸閉包和非逃逸閉包

3.高階函數(shù)(map, flatmap, reduce.... flatmap和map的區(qū)別)

4.optional?

5.結(jié)構(gòu)體里如何修改屬性



iOS深拷貝(MutableCopy)與淺拷貝(Copy)的區(qū)別?http://www.reibang.com/p/5df570135ad2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耕漱,隨后出現(xiàn)的幾起案子算色,更是在濱河造成了極大的恐慌,老刑警劉巖螟够,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灾梦,死亡現(xiàn)場離奇詭異,居然都是意外死亡妓笙,警方通過查閱死者的電腦和手機(jī)若河,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞宫,“玉大人萧福,你說我怎么就攤上這事”哺常” “怎么了统锤?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵毛俏,是天一觀的道長。 經(jīng)常有香客問我饲窿,道長,這世上最難降的妖魔是什么焕蹄? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任逾雄,我火速辦了婚禮,結(jié)果婚禮上腻脏,老公的妹妹穿的比我還像新娘鸦泳。我一直安慰自己,他們只是感情好永品,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布做鹰。 她就那樣靜靜地躺著,像睡著了一般鼎姐。 火紅的嫁衣襯著肌膚如雪钾麸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天炕桨,我揣著相機(jī)與錄音饭尝,去河邊找鬼。 笑死献宫,一個(gè)胖子當(dāng)著我的面吹牛钥平,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姊途,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼涉瘾,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了捷兰?” 一聲冷哼從身側(cè)響起立叛,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寂殉,沒想到半個(gè)月后囚巴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡友扰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年彤叉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片村怪。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秽浇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甚负,到底是詐尸還是另有隱情柬焕,我是刑警寧澤审残,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站斑举,受9級(jí)特大地震影響隅熙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氓鄙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一诚隙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赎懦,春花似錦雀鹃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至当悔,卻和暖如春傅瞻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背先鱼。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工俭正, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焙畔。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓掸读,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宏多。 傳聞我的和親對(duì)象是個(gè)殘疾皇子儿惫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,709評(píng)論 0 9
  • 摘自: http://www.cocoachina.com/ios/20150803/12872.html 說明...
    program袁閱讀 877評(píng)論 1 3
  • 女人,也許你的生活并不富裕更胖;也許你沒有一份體面的工作铛铁;也許你正在困境中;也許你被情所棄却妨;也許你現(xiàn)在下崗了饵逐。不論什么...
    Angel_曉曉閱讀 514評(píng)論 0 0
  • 我死了……就在剛剛,幾分鐘前彪标,一輛車呼嘯而過倍权,我便成了一灘碎泥……我不覺著痛,只是有些覺著有些突然捞烟,我有些傷心薄声,我...
    柒柒四九閱讀 491評(píng)論 6 9