今日頭條iOS高級工程師面試總結

面試形式:電話面試html

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:761407670 進羣密碼‘博客’,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!

1. 你平時怎麼解決網絡請求的依賴關係:當一個接口的請求須要依賴於另外一個網絡請求的結果

解析:面試

  • 辦法1:線程:NSOperation 操做依賴和優先級
    [operationB addDependency:operationA]; // 操做B依賴於操做
  • 辦法2:邏輯:在上一個網絡請求的響應回調中進行下一網絡請求的激活

關於RAC你有怎樣運用到解決不一樣API依賴關係

  • 信號的依賴 使用場景是當信號A執行完纔會執行信號B,和請求的依賴很相似,例如請求A請求完畢才執行請求B,咱們須要注意信號A必需要執行發送完成信號,不然信號B沒法執行
    //這至關於網絡請求中的依賴,必須先執行完信號A纔會執行信號B //常常用做一個請求執行完畢後,纔會執行另外一個請求 //注意信號A必需要執行發送完成信號,不然信號B沒法執行 RACSignal * concatSignal = [self.signalA concat:self.signalB] //這裏咱們是對這個拼接信號進行訂閱 [concatSignal subscribeNext:^(id x) { NSLog(@"%@",x); }];

3. 編譯連接你有了解多少

解析:這個涉及到簡單知識,可參考 http://www.360doc.com/content/17/0111/22/32626470_621879084.shtml算法

4. 簡單介紹下KVO的用法

解析:首先,簡單介紹下KVO的用法,先添加觀察者,而後怎樣實現監聽的代理。關於原理,能夠利用runtime的知識進行實現KVO的原理,筆者曾經實現KVO的block和delegate兩種形式,可參考 https://www.jianshu.com/p/c1aa85779d80編程

簡單概述下 KVO 的實現:api

當你觀察一個對象時,一個新的類會動態被建立。這個類繼承自該對象的本來的類,並重寫了被觀察屬性的 setter 方法。天然,重寫的 setter 方法會負責在調用原 setter方法以前和以後,通知全部觀察對象值的更改。最後把這個對象的 isa 指針 ( isa 指針告訴 Runtime 系統這個對象的類是什麼 ) 指向這個新建立的子類,對象就神奇的變成了新建立的子類的實例。網絡

原來,這個中間類,繼承自本來的那個類。不只如此,Apple 還重寫了 -class 方法,企圖欺騙咱們這個類沒有變,就是本來那個類。更具體的信息,去跑一下 Mike Ash 的那篇文章裏的代碼就能明白,這裏就再也不重複。函數

4. 編程題:RLE算法,編寫一個函數,實現統計字符次數的功能:例如輸入爲aaabbccc,輸出爲a3b2c3。不限語言。

解析:比較簡單,能夠參考這個 http://blog.51cto.com/lanchaohuan/1563103學習

5. 編程題:請實現一個函數,用來判斷一顆二叉樹是否是對稱的。注意,若是一個二叉樹同此二叉樹的鏡像是一樣的,定義其爲對稱的.

解析:思路,遞歸,從根節點開始,判斷左右子節點是否對稱,若對稱,遞歸,若不對稱,則返回NO。spa

相關文章
相關標籤/搜索