面試形式:電話面試
1. 你平時(shí)怎么解決網(wǎng)絡(luò)請(qǐng)求的依賴關(guān)系:當(dāng)一個(gè)接口的請(qǐng)求需要依賴于另一個(gè)網(wǎng)絡(luò)請(qǐng)求的結(jié)果
解析:
- 辦法1:線程:NSOperation 操作依賴和優(yōu)先級(jí)
[operationB addDependency:operationA]; // 操作B依賴于操作
- 辦法2:邏輯:在上一個(gè)網(wǎng)絡(luò)請(qǐng)求的響應(yīng)回調(diào)中進(jìn)行下一網(wǎng)絡(luò)請(qǐng)求的激活
2. 關(guān)于RAC你有怎樣運(yùn)用到解決不同API依賴關(guān)系
- 信號(hào)的依賴
使用場(chǎng)景是當(dāng)信號(hào)A執(zhí)行完才會(huì)執(zhí)行信號(hào)B,和請(qǐng)求的依賴很類似,例如請(qǐng)求A請(qǐng)求完畢才執(zhí)行請(qǐng)求B,我們需要注意信號(hào)A必須要執(zhí)行發(fā)送完成信號(hào),否則信號(hào)B無(wú)法執(zhí)行
//這相當(dāng)于網(wǎng)絡(luò)請(qǐng)求中的依賴,必須先執(zhí)行完信號(hào)A才會(huì)執(zhí)行信號(hào)B
//經(jīng)常用作一個(gè)請(qǐng)求執(zhí)行完畢后,才會(huì)執(zhí)行另一個(gè)請(qǐng)求
//注意信號(hào)A必須要執(zhí)行發(fā)送完成信號(hào),否則信號(hào)B無(wú)法執(zhí)行
RACSignal * concatSignal = [self.signalA concat:self.signalB];
//這里我們是對(duì)這個(gè)拼接信號(hào)進(jìn)行訂閱
[concatSignal subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
3. 編譯鏈接你有了解多少
解析:這個(gè)涉及到簡(jiǎn)單知識(shí),可參考www.360doc.com/content/17/…
4. 簡(jiǎn)單介紹下KVO的用法
解析:首先,簡(jiǎn)單介紹下KVO的用法,先添加觀察者,然后怎樣實(shí)現(xiàn)監(jiān)聽(tīng)的代理。關(guān)于原理,可以利用runtime的知識(shí)進(jìn)行實(shí)現(xiàn)KVO的原理,筆者曾經(jīng)實(shí)現(xiàn)KVO的block和delegate兩種形式,可參考www.itdecent.cn/p/c1aa85779…
簡(jiǎn)單概述下 KVO 的實(shí)現(xiàn)原理:
當(dāng)你觀察一個(gè)對(duì)象時(shí),一個(gè)新的類會(huì)動(dòng)態(tài)被創(chuàng)建。這個(gè)類繼承自該對(duì)象的原本的類,并重寫(xiě)了被觀察屬性的 setter 方法。自然,重寫(xiě)的 setter 方法會(huì)負(fù)責(zé)在調(diào)用原 setter方法之前和之后,通知所有觀察對(duì)象值的更改。最后把這個(gè)對(duì)象的 isa 指針 ( isa 指針告訴 Runtime 系統(tǒng)這個(gè)對(duì)象的類是什么 ) 指向這個(gè)新創(chuàng)建的子類,對(duì)象就神奇的變成了新創(chuàng)建的子類的實(shí)例。
原來(lái),這個(gè)中間類,繼承自原本的那個(gè)類。不僅如此,Apple 還重寫(xiě)了 -class 方法,企圖欺騙我們這個(gè)類沒(méi)有變,就是原本那個(gè)類。更具體的信息,去跑一下 Mike Ash 的那篇文章里的代碼就能明白,這里就不再重復(fù)。
為自己的面試,為自己的跳槽,加油吧 iOS開(kāi)發(fā)
簡(jiǎn)歷模板+最新iOS題目+提升視頻:docs.qq.com/doc/DVWlQam9Qd3B1cEF2