我正在創建一個MyOperation對象(從NSOperation繼承)並添加到NSOperationQueue。然後我在MyOperation上做KVO。 我使用這種方法NSoperation和關鍵值觀察
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
如果完成了擺脫MyOperation的值。在這種方法中,我使用其他類的便捷方法來獲取其他數據。
也許在這裏同步問題的observeValue ...方法?
謝謝你的回答! – 2011-03-27 17:21:54
NSOpertation中使用KVO的impl是一個有爭議的問題;我不是說KVO不好,我說通知是一個更好的選擇。其他使用KVO的課程並不會突然使KVO的所有用途都有效。使用KVO可以將您完全綁定到操作,瞭解關鍵路徑,成爲觀察者,然後將您的兩個班級連接在一起。另一方面的通知很簡單;在你的操作中發佈它,給它的數據,以及應用程序中的其他內容... – dannywartnaby 2011-05-18 14:31:42
我建議你再次閱讀我的評論,我從來沒有說過或暗示它「使KVO的所有用途有效」我只是指出,你說使用KVO「不明智」很具誤導性。想想你會使用KVO而不是通知;通知是粗粒度和廣播的,KVO意味着兩個對象之間的耦合。認爲操作的概念,它是一個原子工作片斷,創建它,某些東西可能需要監視它在做什麼以及什麼時候完成。如果應用程序需要知道發生了什麼Notify,如果客戶端只有KVO – GilesB 2011-05-18 20:23:35