2023年iOS面試題

基礎(chǔ)理論

1.面向?qū)ο蠛兔嫦蜻^(guò)程區(qū)別、概述面向?qū)ο筇匦裕貙懞椭剌d區(qū)別
2.設(shè)計(jì)的原則有哪些?并簡(jiǎn)述常用的設(shè)計(jì)模式?單一職責(zé),里氏替換原則、依賴倒置原則,
3.UIView和CALayer區(qū)別
4.NSProxy的介紹以及用法
5.深復(fù)制和淺復(fù)制
6.類的本質(zhì)
7.分類底層原理解析
8.分類和擴(kuò)展的區(qū)別
9.簡(jiǎn)述KVO以及內(nèi)部實(shí)現(xiàn)
10.多線程下同步和異步,串行并行的概念

內(nèi)存分區(qū)

內(nèi)存分區(qū),每一區(qū)的含義和用法?
常用的屬性修飾符?weak和assign的區(qū)別
Setter的流程
講述alloc都做了什么事情?
概括dealloc流程?
講述weak修飾的變量如何創(chuàng)建和釋放?
講述關(guān)聯(lián)對(duì)象內(nèi)部如何實(shí)現(xiàn)創(chuàng)建和釋放
簡(jiǎn)述iOS的內(nèi)存管理方案?
概述自動(dòng)釋放池?從它的數(shù)據(jù)結(jié)構(gòu)和工作流程(對(duì)象加入 如何被釋放)
retainCount如何存儲(chǔ)
循環(huán)引用的幾種情況

Runtime

簡(jiǎn)述方法本質(zhì)??jī)?nèi)部實(shí)現(xiàn)流程?
關(guān)聯(lián)對(duì)象的創(chuàng)建和釋放流程
SEL、IMP都是什么
概述類和對(duì)象,如何定義一個(gè)類
對(duì)象在內(nèi)存中如何存儲(chǔ),對(duì)象怎么調(diào)用屬性和方法的
類在代碼段如何存儲(chǔ),并如何獲取
簡(jiǎn)述iSA指針。通過(guò)對(duì)象isa指針,查找對(duì)象所屬類在代碼段的方法

RunLoop

概述RunLoop結(jié)構(gòu)
簡(jiǎn)述項(xiàng)目中使用

block

簡(jiǎn)述block本質(zhì)以及類型
概述內(nèi)部實(shí)現(xiàn)
__block修飾的變量可以被修改的原因

多線程

GCD線程組、柵欄、信號(hào)量的一些方法
NSOperation的使用
同步主隊(duì)列會(huì)造成的問(wèn)題

網(wǎng)絡(luò)

TCP和UDP的區(qū)別
網(wǎng)絡(luò)七層和TCP/IP五層模型
三次握手和四次離手過(guò)程
講述一次http請(qǐng)求的過(guò)程,每個(gè)步驟都做了什么
cookie和session的區(qū)別
抓包工具的使用
網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)腞SA、DES加密
WebSocket的了解和使用

八、數(shù)據(jù)存儲(chǔ)
IOS沙盒結(jié)構(gòu),偏好設(shè)置存儲(chǔ)位置
MySQL的操作【FMDB】

性能

卡頓優(yōu)化、內(nèi)存優(yōu)化、啟動(dòng)優(yōu)化、網(wǎng)絡(luò)優(yōu)化、電量?jī)?yōu)化等步驟

算法

了解算法時(shí)間和空間復(fù)雜度,看到方法能大致估算
了解棧和隊(duì)列的概念,以及數(shù)據(jù)進(jìn)出執(zhí)行
了解樹,二叉樹,紅黑樹等順序查找
了解圖的順序查找
排序算法中冒泡排序和選擇排序的寫法
刷LeetCode題中初級(jí)算法,每日一道2篇

組件架構(gòu)

MVC、MVVM的了解,在項(xiàng)目中的使用
了解AFNetWorking、SDWebImage源碼實(shí)現(xiàn)

App Store賬號(hào)

個(gè)人和公司賬號(hào)的申請(qǐng)
掌握提審信息的填寫
能夠解決被拒問(wèn)題,內(nèi)購(gòu),元數(shù)據(jù),內(nèi)容素材等問(wèn)題

音視頻

了解WebRTC,熟悉常用的API
FFmpeg的源碼閱讀,能夠基于此二次集成
IJKPlayer的項(xiàng)目使用
了解H264、H265編碼實(shí)現(xiàn)
了解直播RTMP原理實(shí)現(xiàn)

Swift-類

概述幾種初始化器
Swift之weak和unowned
??底層實(shí)現(xiàn)
Lazy、guard、元組、associatedtype
是否具備動(dòng)態(tài)性
簡(jiǎn)述mutating
swift結(jié)構(gòu)體和類區(qū)別
Swift和OC區(qū)別
簡(jiǎn)述寫時(shí)復(fù)制機(jī)制

Flutter&Dart

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

友情鏈接更多精彩內(nèi)容