一、小豬
1、runtime、runloop的各種使用場(chǎng)景,詳細(xì)介紹下。 (類別添加屬性、線程?;畹缺M可能多的說(shuō)出使用場(chǎng)景)
2、如何擴(kuò)大按鈕的點(diǎn)擊區(qū)域。
3、id和void的區(qū)別?
id指任意一個(gè)Objective C類的對(duì)象的指針,僅限于Objective C類的對(duì)象;
void 指一個(gè)未知類型或未知內(nèi)容的指針,提供了一個(gè)對(duì)其他API的對(duì)象的指針;
建議最好不要使用void,盡量用NSObject*替換id,這樣編譯器可以提供更好的檢驗(yàn)。
4、內(nèi)存對(duì)齊、偽指針?
內(nèi)存對(duì)齊:對(duì)齊就是為了優(yōu)化硬件效率,結(jié)構(gòu)體的內(nèi)存對(duì)齊,按照其內(nèi)部最大元素基本類型或者模數(shù)大小對(duì)齊
5、匿名函數(shù)和block的區(qū)別?
匿名函數(shù)就是block,沒(méi)有名字。
6、block的原理?(指針引用、值引用、__block修飾原理、block的類型,區(qū)別是什么)
7、路由的原理?
8、autoreleasePoll原理?和runloop有什么關(guān)系?
9、鎖都有什么類型?傳送門(mén)
10、dyld作用,以及APP啟動(dòng)流程?
11、iOS內(nèi)存管理機(jī)制?引用計(jì)數(shù)用什么維護(hù)?
12、weak原理?
13、GCD、NSOpreation區(qū)別,并發(fā)數(shù)越多越好嗎?為什么?
14、UI在子線程刷新有什么問(wèn)題嗎?為什么?
15、類別怎么實(shí)現(xiàn)weak屬性?在什么地方銷毀呢?
16、可變類型用copy修飾可以嗎?有什么問(wèn)題?為什么?
17、說(shuō)出消息轉(zhuǎn)發(fā)機(jī)制?
18、實(shí)例方法調(diào)用方法流程?self和super調(diào)用有什么區(qū)別?
二、學(xué)而思
側(cè)重基礎(chǔ),免了兩次,一次一面掛,一次二面掛。
一面:
1、GCD和NSOpreation區(qū)別,詳細(xì)說(shuō)明? GCD怎么實(shí)現(xiàn)NSOpreation的依賴?怎么實(shí)現(xiàn)NSOpreation的并發(fā)數(shù)?
2、runtime、runloop的具體項(xiàng)目應(yīng)用?
3、深淺拷貝?自定義對(duì)象的拷貝怎么實(shí)現(xiàn)?以及修飾可變和不可變數(shù)據(jù)類型用什么?有什么區(qū)別?
4、APP啟動(dòng)流程?Mach-O是什么?
5、block是什么??jī)?nèi)部原理是什么?
6、事件響應(yīng)和分發(fā)?
7、內(nèi)存泄漏的場(chǎng)景以及解決辦法?(盡可能多的說(shuō)出來(lái))
8、KVC和KVO場(chǎng)景?
9、如何找到兩個(gè)UI的共同父類?
10、界面卡頓的原因以及如何優(yōu)化?
11、怎么處NSTimer的理循環(huán)引用?還有什么方法能替代NSTimer定時(shí)器嗎?
12、什么導(dǎo)致離屏渲染,它的渲染原理是什么?怎么處理?
二面:
1、你在項(xiàng)目中擔(dān)任什么角色?是怎么設(shè)計(jì)項(xiàng)目框架的?為什么這么設(shè)計(jì)?還有別的更好的設(shè)計(jì)嗎?
2、你個(gè)人有什么優(yōu)勢(shì)?項(xiàng)目有什么亮點(diǎn)?
3、2的1000次方你怎么算?
4、創(chuàng)建一個(gè)對(duì)象占有多少空間?實(shí)際占多少空間?
系統(tǒng)分配了16個(gè)字節(jié)給NSObject對(duì)象(可以通過(guò)malloc_size函數(shù)得到); 但NSObject對(duì)象內(nèi)部只使用了8個(gè)字節(jié)空間(在64bit環(huán)境下,可以通過(guò)class_getInstanceSize函數(shù)獲得)。
三、作業(yè)幫
1、代理、block使用場(chǎng)景?為什么會(huì)內(nèi)存泄漏? 代碼展示block的值引用指針引用。
2、直接allloc一個(gè)對(duì)象,它在哪個(gè)空間,什么時(shí)候銷毀呢?
UIView *view = [[UIView alloc] init];
3、內(nèi)存泄漏場(chǎng)景以及解決辦法?
4、@synchronized(self),為什么用self,有什么作用,用nil可以嗎?
5、B是A的子視圖,B超出A范圍的點(diǎn)擊失效了怎么處理讓它可以點(diǎn)擊?
四、今日頭條
基礎(chǔ)+算法,問(wèn)的都不是平時(shí)用的,都是指針內(nèi)存,算法,慘敗。
五、當(dāng)當(dāng)
各種設(shè)計(jì)模式,實(shí)例化應(yīng)用場(chǎng)景讓你轉(zhuǎn)換成對(duì)象。
1、我是面試官,你是面試者,請(qǐng)?jiān)O(shè)計(jì)個(gè)抽出的對(duì)象來(lái)處理?
2、列出設(shè)計(jì)模式?以及應(yīng)用場(chǎng)景?(你為什么要這么設(shè)計(jì),比如你為什么用代理?)
3、知道面向?qū)ο蟮慕M合嗎?
4、排序兩個(gè)數(shù)組中的數(shù)字,并算出時(shí)間復(fù)雜度?
六、智聯(lián)招聘
1、SDWebImage在cell中的復(fù)用機(jī)制?
imageView 對(duì)象會(huì)關(guān)聯(lián)一個(gè)下載列表,列表是給AnimationImages用的,這個(gè)時(shí)候會(huì)下載多張圖片,當(dāng)tableView 滑動(dòng),imageView重設(shè)數(shù)據(jù)源url 時(shí),會(huì)cancle掉下載列表中所有的任務(wù)
,然后開(kāi)啟一個(gè)新的下載任務(wù)。這樣就保證了只有當(dāng)前可見(jiàn)的cell對(duì)象的imageView對(duì)象關(guān)聯(lián)的下載任務(wù)能夠回調(diào),不會(huì)發(fā)生image錯(cuò)亂。
即:每次下載前都先取消掉上一次的下載。那么你的圖片下載器就需要實(shí)現(xiàn)取消下載功能,幸運(yùn)的是SD這樣的圖片加載器已經(jīng)實(shí)現(xiàn)了這樣的功能
鏈接:http://m.itdecent.cn/p/e979581ac4c2
2、深淺拷貝?自定義對(duì)象的拷貝?它的屬性也會(huì)拷貝嗎?為什么?(這里問(wèn)的很深,請(qǐng)重點(diǎn)寫(xiě)代碼測(cè)試,否則說(shuō)不好)
3、線程、autoreleasepool應(yīng)用場(chǎng)景以及原理?
4、runtime和runloop的實(shí)際使用?
5、APP怎么優(yōu)化?
6、MAC和MVVM?
7、通知是同步的還是異步的?
8、KVO原理
七、點(diǎn)點(diǎn)互動(dòng)
做游戲SDK,對(duì)于數(shù)據(jù)的采集存儲(chǔ)方式、共享、準(zhǔn)確性、內(nèi)購(gòu)等。
1、內(nèi)購(gòu)流程以及掉單怎么處理?
2、APP怎么共享數(shù)據(jù)?keychain的原理是什么?
3、數(shù)據(jù)存儲(chǔ)的幾種方式?APP崩潰了怎么保證數(shù)據(jù)不丟失?SDK中存儲(chǔ)在NSUSerDefault中的數(shù)據(jù),有沒(méi)有可能被其他SDK或者APP清掉?
4、線程的具體應(yīng)用?
5、怎么防止SDK的崩潰?runtime的應(yīng)用。
八、貝塔科技
做廣告SDK ,涉及到的SDK的下載,打包,合并,策略都要有所了解才能比較好的應(yīng)對(duì)。
1、怎么聚合多個(gè)SDK,減少SDK體積?
2、SDK展示廣告機(jī)制?(從下載、存儲(chǔ)、斷網(wǎng)考慮)
3、SDK的多種形式?(視頻、原生、H5)
4、SDK什么時(shí)機(jī)給用戶反饋?
九、齊聚科技
做直播的,要比較專業(yè)的直播知識(shí)。
1、文字聊天界面,隨時(shí)有幾百上千條聊天,怎么處理?
2、GCD和NSOPreation?
3、直播時(shí)候渲染界面的流程?(太專業(yè),沒(méi)答出來(lái))
十、國(guó)能合電
十一、測(cè)測(cè)星座
全flutter寫(xiě)的工程。
!??!打廣告啦,招兼職啦!??!