NSManagedObject
私のオーバーライドされた実装のサブクラスではwillTurnIntoFault
、問題のオブジェクトを最初に作成したコードを元に戻すときに、 が 2 回呼び出されています。これにより、キー パスで KVO の登録を二重に解除しようとすると、クラッシュが発生します。
Apple のドキュメントによると、ここが KVO の登録を解除するのに適した場所です。
ちょっとしたコンテキスト - 元に戻す操作には、モデルの対応するビューをそのスーパービューから削除することが含まれます。ビューはそのモデルを保持します。
だから私の質問は:のサブクラスで 2 回呼び出される可能性があるプログラマ エラーの種類は何ですか?willTurnIntoFault
NSManagedObject
注: 以前dealloc
はこのクラスでオーバーライドしていましたが、NSManagedObject のサブクラスには推奨されないことに気付きました。それ以来、このコードを に移動しました-didTurnIntoFault
。私は現在、Apple のドキュメントでオーバーライドしてはならないと言われている他のメソッドをオーバーライドしていません。