2013-07-06 44 views
0

只是希望證實,有沒有辦法一氣呵成刪除多個KVOs和我有另外發出刪除多個KVOs一氣呵成

[self removeObserver:self forKeyPath:@"name"]; 

每個觀察關鍵路徑(即使觀察者自)。我瀏覽了文檔,因此沒有找到任何東西。

回答

1

沒錯。沒有「內建」方法來刪除多個關鍵路徑的多個觀察者。
但是你可以使用類別來創建自己的方法,這樣做你想要什麼:

@interface NSObject (ExtendedKeyValueObserving) 
- (void)removeObserver:(NSObject *)observer forKeyPaths:(NSArray *)keyPaths; 
@end 
@implementation NSObject (ExtendedKeyValueObserving) 
- (void)removeObserver:(NSObject *)observer forKeyPaths:(NSArray *)keyPaths { 
    for (NSString *keyPath in keyPaths) 
     [self removeObserver:observer forKeyPath:keyPath]; 
} 
+0

感謝確認JDS。我可能會對你的建議進行變更。 – psmythirl