iOS 大廠面試題匯總

轉(zhuǎn)載自:https://cloud.tencent.com/developer/article/2006176

Okcoin

1、項(xiàng)目中比較熟悉的問題

2、App如何減size,如何優(yōu)化,資源如何減小

3、DNS解析

4、網(wǎng)絡(luò)四層模型

5、KVO的原理,為什么要在子類重寫setter方法而不在自身

6、圖片渲染流程

7、runtime消息轉(zhuǎn)發(fā)的過程,動(dòng)態(tài)解析和消息轉(zhuǎn)發(fā)的階段

8、class類的結(jié)構(gòu)體

9、class_rw_t與class_ro_t有啥區(qū)別

10、如果runtime調(diào)用的是父類的方法會(huì)按照什么順序

11、求兩條鏈表相交的第一個(gè)節(jié)點(diǎn)

12、runloop是用來做什么的

13、GCD和NSOperation本質(zhì)的區(qū)別是什么

14、信號(hào)量、如果有兩組任務(wù)執(zhí)行,需要先執(zhí)行某兩組,再執(zhí)行另外兩組,有多少種方式?

15、redux的工作流程

16、__block最后變成了什么,block有幾種類型

17、weak指針的實(shí)現(xiàn)原理

18、自動(dòng)釋放池的結(jié)構(gòu)

19、 基礎(chǔ)修飾符,aotomic和noatomic的區(qū)別

20、給鎖排一下序

21、子線程要是不開啟runloop,它會(huì)運(yùn)行在什么位置

22、HTTP2.0和HTTP1.x的區(qū)別

23、copy和strong的區(qū)別

24、組件化

25、wkwebview與原生交互

26、sdK開發(fā)

27、通知的實(shí)現(xiàn)原理

28、block如何解決循環(huán)引用

天眼查

1、項(xiàng)目介紹,優(yōu)化方面、RN

2、runloop卡頓監(jiān)測(cè)

3、kvc的調(diào)用順序和原理

4、kvo的原理、手動(dòng)實(shí)現(xiàn)kvo。如果用setvalue實(shí)現(xiàn)可以嗎

5、touch事件的分發(fā)、查找的過程、如果要求touch子視圖擴(kuò)展點(diǎn)擊范圍應(yīng)該怎么做

6、isa指針

7、block有幾種類型,分別在什么情況下表示

8、字符串的壓縮算法

9、https和http的區(qū)別

10、https的加密過程,https在傳輸過程屬于什么加密

11、多線程、信號(hào)量

12、oc2mango熱發(fā)的原理

13、OC組件化、RN組件化

14、oc對(duì)象結(jié)構(gòu)體

老虎國(guó)際

1、項(xiàng)目做了什么事情

2、消息轉(zhuǎn)發(fā)的原理,runtime做了什么事情

3、AOP切片

4、用Instrument做了什么事情,插

5、對(duì)缺頁異常做了什么優(yōu)化,如何查看編譯過后的方法順序

6、什么情況下會(huì)產(chǎn)生離屏渲染

7、runloop怎樣做性能檢測(cè)的

8、runloop和多線程有什么關(guān)系

9、子線程如何?;睿骶€程有runloop?主線程有runloop?

10、AFNWorking中3.0為什么取消了runloop的時(shí)間監(jiān)測(cè)

11、SDWebImage的實(shí)現(xiàn)

12、n個(gè)階梯,只能爬1級(jí)或2級(jí),有多少種方法

13、bridge通信的一個(gè)過程、RN的通信過程

14、簡(jiǎn)單工廠和抽象工廠有什么區(qū)別

15、單例模式?單例模式重寫的allocwithzoom的zoom指的是什么

16、dispatch_once的源碼有了解過嗎

17、isa指針有什么了解

18、數(shù)據(jù)持久化用的是什么

19、http請(qǐng)求的緩存字段有了解嗎

20、組件化url scheme的方式和其他組件化方式的優(yōu)缺點(diǎn)

21、分類的源碼有看過?既然是逆序的方式,要如何調(diào)用前面編譯的方法使其不被覆蓋?

22、MVVM模式的優(yōu)缺點(diǎn)

23、如何使用RAC以及它的利弊

24、CPU和GPU的區(qū)別,圖片渲染做過嗎

分貝通

1、用過什么組件化,url-router的方式暴露出的方法,參數(shù)是用什么類型來傳遞的

2、項(xiàng)目里面的流程說具體點(diǎn)

3、MVVM和MVC的選擇基于什么考慮,項(xiàng)目中的用途,畫出MVVM的調(diào)用關(guān)系

4、RAC的具體用法

5、NSArray和NSSet的區(qū)別,如果一萬個(gè)數(shù)里面取某個(gè)數(shù)字用那種方法好,NSSet取值的key是多少

6、內(nèi)存管理這塊了解嗎

7、block聲明為什么要用copy?__block是什么,它捕獲的是什么變量?為什么加了__block就能改變捕獲變量的值?

8、如果有兩個(gè)任務(wù)需要先執(zhí)行,再執(zhí)行別的任務(wù),你會(huì)怎么解決?具體的參數(shù)是什么?

9、啟動(dòng)優(yōu)化和卡頓監(jiān)測(cè)、tableview的優(yōu)化

10、屏幕成像的原理

11、離屏渲染是什么?有沒有什么情況下離屏渲染是有作用的

12、用Instrument做了什么?監(jiān)控內(nèi)存具體怎么做的,怎么查看缺頁異常?

13、runtime在項(xiàng)目里怎么用的,如果調(diào)一個(gè)類的類方法沒有實(shí)現(xiàn),但是實(shí)現(xiàn)了這個(gè)類的同名實(shí)例方法,會(huì)發(fā)生什么事情。

14、類對(duì)象的isa指針最終指向的位置以及父類最終指向的位置

15、最近看的書講的什么內(nèi)容

16、如果你來公司能為公司帶來什么

字節(jié)

1、RN和原生的分工RN與原生的交互、接口的設(shè)計(jì)

2、項(xiàng)目的整體架構(gòu)

3、原生與RN通信的接口是如何維護(hù)的,RN和原生通信,會(huì)遇見iOS和安卓不一致的問題,有什么辦法保持一致

4、RN的基本原理,剛才說的dom映射做了哪些優(yōu)化來保證頁面更新不卡頓

5、你們項(xiàng)目的RN引擎是單實(shí)例還是多實(shí)例

6、介紹一下redux的整個(gè)概念

7、你還記得有哪些計(jì)算狀態(tài)的函數(shù)(combine,provide)

8、為什么選擇redux,有接觸過其他的管理狀態(tài),mobix有接觸過嗎

9、性能工具,主要是做了哪些呢?(此處說了交換方法,卡頓監(jiān)測(cè))

10、卡頓監(jiān)測(cè)通過什么做的

11、圖片渲染和顯示原理

12、安裝包瘦身

13、除了APPCode,還能用哪種方式檢測(cè)無用代碼

14、說一下APP啟動(dòng)的流程(動(dòng)態(tài)庫,計(jì)算rebase偏移地址,分類,初始化)

15、直播、介紹一下直播的流程,從視頻錄制到另一臺(tái)手機(jī)看見的流程

16、判斷鏈表是否有環(huán)

17、iOS中數(shù)組的多讀單寫

18、iOS如何做hook

19、Uni-app介紹了一下

20、MVVM的持有關(guān)系

小米

1、 TCP和UDP,三次握手,追問改成兩次會(huì)怎樣,線程同步機(jī)制

2、 斐波拉契數(shù)列

3、反轉(zhuǎn)鏈表

4、RN跟原生相比的優(yōu)劣,組件生命周期,項(xiàng)目基于RN哪個(gè)版本開發(fā),雙端適配問題

5、平常如何學(xué)習(xí),性能優(yōu)化,項(xiàng)目難點(diǎn)在哪

6、 事件傳遞機(jī)制和響應(yīng)機(jī)制

7、 什么時(shí)候view不會(huì)響應(yīng)觸摸事件,如何響應(yīng)view以外的事件

8、 自動(dòng)釋放池

9、 內(nèi)存管理機(jī)制

10、 weak關(guān)鍵詞在什么情況下用,與assgin的區(qū)別

11、 weak底層原理

12、什么時(shí)候會(huì)報(bào)unrecognized selector異常,底層實(shí)現(xiàn)原理,消息發(fā)送

13、 runloop

14、 使用過哪些三方庫

15、問了些組件化的問題

美團(tuán)外賣商家端

1、uni-app這個(gè)東西是做什么的,在你看來有哪些利弊

2、 從前臺(tái)到后臺(tái)的一次請(qǐng)求經(jīng)歷了哪些階段?

3、 http/https的工作過程和區(qū)別、它們屬于五層中的哪一層

4、 三次握手的原理

5、get/put/post/delete請(qǐng)求方式

6、 項(xiàng)目里面你做了什么性能優(yōu)化和啟動(dòng)改造

7、 為什么WKWebview的性能比UIWebview的性能高

8、 runtime的消息轉(zhuǎn)發(fā)機(jī)制

9、 runtime的具體用法

10、 KVC

11、 @synthesize和@dynamic分別有什么作用

12、36匹馬,六個(gè)跑道。沒有記時(shí)器等設(shè)備,用最少的比賽次數(shù)算出跑的最快的馬

13、setNeedsDisplay、setNeedsLayout、layoutIfNeed區(qū)別

14、MGJRouter的作用

貨拉拉

1、項(xiàng)目里面值得認(rèn)可的部分、RN橋接的一些東西

2、 MVVM和MVC

3、 調(diào)試奔潰的工具

4、 做了什么操作讓優(yōu)化項(xiàng)目

5、get和post、http協(xié)議、網(wǎng)絡(luò)請(qǐng)求這塊問得比較多

6、 數(shù)據(jù)傳輸?shù)母袷絡(luò)son?xml?等等

7、 后臺(tái)返回的數(shù)據(jù)是多少K的,大文件傳輸怎么辦

8、數(shù)據(jù)庫的一些操作

9、iOS存儲(chǔ)方式

10、TCP/IP協(xié)議

11、ARC引用計(jì)數(shù)、內(nèi)存管理幾個(gè)區(qū)域

12、OC的基礎(chǔ)數(shù)據(jù)類型

13、說一說多線程、在項(xiàng)目中怎么用的

14、單例模式怎樣設(shè)計(jì)的,有什么優(yōu)缺點(diǎn)

15、觀察者模式、KVO的原理

16、地圖開發(fā)經(jīng)驗(yàn)

17、寫uni-app的架構(gòu)、serveice層、小程序上線流程

19、為什么要寫博客

20、 以后的發(fā)展方向

滴滴

1、 二叉樹搜索的思路

2、 反轉(zhuǎn)鏈表

3、 項(xiàng)目中遇到的重大問題、如何解決的、解決后心態(tài)的變化

4、組件化有用到哪些?說說你們后臺(tái)分發(fā)的流程

5、 block的循環(huán)引用是怎么產(chǎn)生的?在內(nèi)部會(huì)不會(huì)加上__strong?為什么

6、block如何修改外部變量

7、 runtime消息轉(zhuǎn)發(fā)流程和結(jié)構(gòu)體

8、 GCD和NSOperation的利弊

9、 說一下runloop

10、 圖片緩存的原理和圖片移除的原理(主要考察最長(zhǎng)時(shí)間算法)

11、 你知道的數(shù)據(jù)持久化的方式

12、 數(shù)據(jù)庫用的哪些?FMDB、SQLite

13、在讀寫數(shù)據(jù)庫的時(shí)候使用的是幾個(gè)線程

14、 說一下uni-app、這樣設(shè)計(jì)架構(gòu)的目的是什么

15、單例、代理、觀察者你喜歡用哪個(gè)

16、swift的struct和class的區(qū)別

17、swift的option是怎么實(shí)現(xiàn)的

18、做了哪些性能優(yōu)化和啟動(dòng)改造

19、 怎么與前端進(jìn)行通信的

快手用戶增長(zhǎng)

1、 weak的用途和原理。追問:key和value是怎樣對(duì)應(yīng)的?查找時(shí)怎樣找到它清理的對(duì)象。

2、 uitableview是什么模式實(shí)現(xiàn)的?

3、 frame和bounds的區(qū)別

4、 kvo的使用和原理

5、isa指針的說明6、 base64/md5加密/aes/rsa+des加密,在什么情況下用到了md5加密

6、block的結(jié)構(gòu)和它造成的循環(huán)引用

7、自動(dòng)化打包

平臺(tái)通過腳本控制 遠(yuǎn)程打包 節(jié)省人力物力,解決沖突,走測(cè)試

8、打包時(shí)間長(zhǎng)怎么優(yōu)化

9、編譯過程縮短

10、 Autolayout,舉了個(gè)栗子排布。uibutton寬度固定,uilabel怎么排

11、離屏渲染的原理和例子

12、http傳輸?shù)奈鍖樱粋€(gè)瀏覽器向服務(wù)端發(fā)送url的過程。追問:解析ip地址的時(shí)候發(fā)生在哪一層。

13、 三次握手的原理,tcp在哪一層?ip在哪一層

14、 快速排序的復(fù)雜度、冒泡排序的復(fù)雜度

15、手寫兩個(gè)鏈表合并

16手寫字符串反轉(zhuǎn)

趣拿

1、HTTPS和HTTP的區(qū)別

2、 HTTPS傳值過程

3、 runtime發(fā)送消息的流程。給nil對(duì)象發(fā)送消息會(huì)怎樣?

4、 根元類的isa指向,根元類的父類指向

5、 用runtime做過什么事情

6、 Hook和aop

7、 load和initail的調(diào)用時(shí)機(jī)

8、rn模塊開發(fā),反向傳值是怎么傳的

9、 同時(shí)重寫getter和setter方法會(huì)怎樣?

10、 KVO的原理。追問:如果對(duì)這個(gè)類使用了KVC,再用反射方法去訪問這個(gè)類,它返回的結(jié)果是什么?

11、靜態(tài)庫動(dòng)態(tài)庫

12、手寫鏈表反轉(zhuǎn)

13、 怎么判斷有環(huán)

14、二分查找

15、斐波拉契

16、快排

猿題庫

1、oc的動(dòng)態(tài)運(yùn)行時(shí)體現(xiàn)在什么方面

2、runtime發(fā)送消息的流程,forwardTarget方法是做什么的?

3、kvo的實(shí)現(xiàn)過程

4、要是讓你設(shè)計(jì)一個(gè)通知模式,你會(huì)怎么做?怎么把方法傳給外面要調(diào)用它的類?

4、crash的捕獲原理

5、兩個(gè)透明的view都有button,view1放在view2上面,但是從界面看上去button像是放在一個(gè)view中。問此時(shí)點(diǎn)擊兩個(gè)button會(huì)發(fā)生什么事。

6、NSTimer什么時(shí)候會(huì)出現(xiàn)循環(huán)引用?怎么解決

7、RN的原理

8、HTTPS和HTTP的區(qū)別、五層模型

9、fps的檢測(cè)

10、cs的基礎(chǔ)

11、shell和ruby有寫過腳本么

12、找出數(shù)組中比它左邊都要大比它右邊要小的數(shù)放入到新的數(shù)組

13、wkwebview與uiwebview的區(qū)別

智慧丘比特

1、 categroy的工作原理和需要注意的事項(xiàng)?

2、只能添加方法不能添加成員變量

3、分類中的@property, 只會(huì)生成setter/getter方法的聲明, 不會(huì)生成實(shí)現(xiàn)以及私有的成員變量

4、添加的方法是如何存放的?

5、KVO的實(shí)現(xiàn)原理?

6、kVO在內(nèi)存中是如何管理的?

7、內(nèi)存管理方面的理解? arc是如何實(shí)現(xiàn)的

8、自動(dòng)釋放池是如何管理內(nèi)存的? 你現(xiàn)在的代碼還能看到autoreleasepool么

9、sdwebimage 給一個(gè)圖片到屏幕展示,是如何工作的

10、為什么使用sdweimage的過程中,不卡

11、給你一個(gè)url,到服務(wù)器返回一個(gè)json數(shù)據(jù)的過程

12、并發(fā)返回了多個(gè)數(shù)據(jù),如何拿到的數(shù)據(jù)是按順序的?

13、合并兩個(gè)有序數(shù)組

14、買賣股票的最佳時(shí)機(jī)

15、app的啟動(dòng)流程

新勢(shì)力

1、 項(xiàng)目中印象深刻比較難的?

2、 swift和OC有什么區(qū)別

3、 多線程的應(yīng)用場(chǎng)景

4、兩個(gè)異步任務(wù)如何去做同步? gcd和nsoperation如何實(shí)現(xiàn)

5、 做過什么性能優(yōu)化的東西

美團(tuán)

1、特別想介紹的項(xiàng)目

2、 熱修復(fù)的原理?

3、運(yùn)行時(shí)的介紹? 消息轉(zhuǎn)發(fā)的流程

4、 OC中相關(guān)動(dòng)態(tài)的方法?

5、運(yùn)行時(shí)解決過什么問題

6、 kvo的實(shí)現(xiàn)過程? 主要解決什么問題呢?

7、 self和super的區(qū)別

8、組件化如何通訊

9、tcp udp http

10、做過什么網(wǎng)絡(luò)優(yōu)化的操作么?

11、你的日志是如何設(shè)計(jì)的

12、有什么指標(biāo)相關(guān)的么

13、環(huán)形鏈表

最后編輯于
?著作權(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)容