面試形式:電話面試html
解析:面試
[operationB addDependency:operationA]; // 操做B依賴於操做
//這至關於網絡請求中的依賴,必須先執行完信號A纔會執行信號B //常常用做一個請求執行完畢後,纔會執行另外一個請求 //注意信號A必需要執行發送完成信號,不然信號B沒法執行 RACSignal * concatSignal = [self.signalA concat:self.signalB] //這裏咱們是對這個拼接信號進行訂閱 [concatSignal subscribeNext:^(id x) { NSLog(@"%@",x); }];
解析:這個涉及到簡單知識,可參考 http://www.360doc.com/content/17/0111/22/32626470_621879084.shtml算法
解析:首先,簡單介紹下KVO的用法,先添加觀察者,而後怎樣實現監聽的代理。關於原理,能夠利用runtime的知識進行實現KVO的原理,筆者曾經實現KVO的block和delegate兩種形式,可參考 https://www.jianshu.com/p/c1aa85779d80編程
簡單概述下 KVO 的實現:api
當你觀察一個對象時,一個新的類會動態被建立。這個類繼承自該對象的本來的類,並重寫了被觀察屬性的 setter 方法。天然,重寫的 setter 方法會負責在調用原 setter方法以前和以後,通知全部觀察對象值的更改。最後把這個對象的 isa 指針 ( isa 指針告訴 Runtime 系統這個對象的類是什麼 ) 指向這個新建立的子類,對象就神奇的變成了新建立的子類的實例。網絡
原來,這個中間類,繼承自本來的那個類。不只如此,Apple 還重寫了 -class 方法,企圖欺騙咱們這個類沒有變,就是本來那個類。更具體的信息,去跑一下 Mike Ash 的那篇文章裏的代碼就能明白,這裏就再也不重複。函數
解析:比較簡單,能夠參考這個 http://blog.51cto.com/lanchaohuan/1563103學習
解析:思路,遞歸,從根節點開始,判斷左右子節點是否對稱,若對稱,遞歸,若不對稱,則返回NO。spa