オブジェクトがいつ解放されるかを知るにはどうすればよいですか? kvo の変更をリッスンしていますが、保持カウントが 0 になる前にオブジェクトの割り当てが解除され、次の警告が表示されます。
クラス MyViewController のインスタンス 0x16562be0 の割り当てが解除されましたが、キー値オブザーバーがまだ登録されていました。観測情報が漏洩し、他の天体に誤って付着する可能性さえあります。NSKVODeallocateBreak にブレークポイントを設定して、デバッガーでここで停止します。現在の観測情報は次のとおりです。
基本的に私がやろうとしているのは、モデルが却下されたときを検出することです。提示されているviewControllerは動的であり、mainViewControllerはUIViewControllerのサブクラスであるという事実以外にそれらについての知識がないため、 Delegate を使用できません。
[anotherViewController addObserver:self forKeyPath:@"retainCount" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionPrior context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
// Here check for the changes and see of the new value is 0 or not
}
また、viewControllerのsuperViewがnilに変更されているのを聞いてみました
[anotherViewController.view addObserver:self forKeyPath:@"superView" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionPrior context:nil];