【iOS】iOS技術知識體系總結

一、UI視圖

其中包括事件傳遞、視圖響應、UI布局、繪制、Tableview重用機制的理解等基本技術點,也包括如離屏渲染、流式頁面的性能優(yōu)化、異步繪制、UI渲染機制等偏底層技術的考察。

二、Objective-C語言

其中包括如KVO、KVC、分類、擴展、關聯(lián)對象等系統(tǒng)實現(xiàn)原理和機制,以及NSNotification、屬性關鍵字等相關技術點的考察。

三、Runtime

可以說是中級以及以上工程師的必備技術要求,面試官往往會考察大家對對象、類對象、元類對象的理解、消息傳遞機制、消息轉發(fā)流程、Method-Swizzling、ISA-swizzling、動態(tài)方法解析、動態(tài)添加方法等。

四、內存管理

可以說是高階考點,也是難點,中高級及以上無法回避的問題??疾靸热莼景ǎ簑eak自動置nil、ARC、MRC、自動釋放池的實現(xiàn)原理、循環(huán)引用、引用計數(shù)管理思想等。

五、Block

iOS當中非常重要的OC語言特性,自然也是面試常考點。其中包括截獲變量特性、__Block關鍵字、Block的本質、Block的內存管理和循環(huán)引用等。

六、多線程

面試高級考點。iOS常見的多線程技術NSOperation&NSOperationQueue 、NSThread、GCD;那么面試過程當中,往往會結合實際代碼考察大家對多線程技術的掌握深度,包括對于常見鎖的考察,如NSLock、遞歸鎖、自旋鎖、條件鎖等等。

七、RunLoop

相信大家都知道RunLoop可以有事做事,沒事休息,面試當中的考察可能要更深入些,RunLoop為什么會有事做事沒事休息,系統(tǒng)是怎樣實現(xiàn)的。再比如怎樣實現(xiàn)一個常駐線程、RunLoop和線程的關系是怎樣的等等。

八、網(wǎng)絡

其中包括HTTP相關的中間人攻擊、HTTPS的連接建立流程、對稱加密、非對稱加密、DNS劫持、TCP的滑動窗口協(xié)議、可靠傳輸是怎樣保證的,以及TCP的慢啟動特點,Session/Cookie的區(qū)別等等,這些都是面試中高級崗位必考問題。

九、設計模式

其中包括常見的軟件設計原則,責任鏈、適配器、橋接、命令、單例、策略模式等等,面試官會讓你結合實際業(yè)務場景,現(xiàn)場考察你對設計模式的運用和理解的。

十、架構/框架

其中包括常見的如怎樣設計圖片緩存框架、網(wǎng)絡框架,客戶端的整體架構怎樣實現(xiàn),常見的解耦方式有哪些,大部分人都知道OpenURL是一種解耦方案,那依賴注入這種方式可能很多人會感到陌生,這也是面試官期許的答案。

十一、算法

其中包括BAT、TMD經(jīng)??疾斓挠行驍?shù)組歸并、鏈表反轉、字符串反轉、大數(shù)相加算法思想等等,這部分變化就很多了。

十二、第三方

常見的AFNetworking、SDWebImageView、Reactive Cocoa、React Native等的原理。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容