Cocoaはさっぱり!!! Version.3
■ このスレッドは過去ログ倉庫に格納されています
0700名称未設定
04/04/04 22:03ID:Do3WZ3ap設定しているんですが、削除時に以下のエラーメッセージが実行ログ中に出力されます。なんが悪いんでしょうか?
An instance 0x35e2f0 of class MyClass is being deallocated while key value observers are still registered with it. Break on _NSKVODeallocateLog to start debugging.
追加削除のコードはこんな感じ
- (IBAction)add:(id)sender {
MyClass *anObject = [[[MyClass alloc] init] autorelease];
[self registerForChangeNotification:anObject];
[sourceController addObject:anObject];
}
- (IBAction)remove:(id)sender {
MyClass *anObject = [[sourceController selectedObjects]
objectAtIndex:0];
[self unregisterForChangeNotification:anObject];
[sourceController removeObject:anObject];
}
- (void)unregisterForChangeNotification:(id)anObject
{
[anObject removeObserver:self forKeyPath:@"value"];
}
- (void)registerForChangeNotification:(id)anObject {
[anObject addObserver:self
forKeyPath:@"value" options:NULL context:NULL];
}
こうしているのは、このクラス(MyClassとは違う)でMyClassの各インスタンスが
変更されたときに処理をしたいからなんですけど。unregisterがうまくできていない感じです。
sourceControllerはNSArrayControllerです。
■ このスレッドは過去ログ倉庫に格納されています