0
我有一個對象觀察者,我只需要檢測一件事情。一旦我完成它,我想刪除它以消除開銷。在觀察事件後刪除觀察者
因此,這將是這個樣子:
-(void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*) change context:(void*)context{
if ([keyPath isEqual:@"doingSomething"]){
if ([object isDoingSomething] == NO) {
[my_object setDoingSomething: DO_NOTHING_FOREVER];
[my_object removeObserver:self forKeyPath:@"doingSomething"] // <= ERROR eventually
}
}
}
這不工作,雖然並拋出一個錯誤,如:
NSKVOPendingNotificationRelease 「EXC_BAD_ACCESS」
這似乎工作。 – Dex