foo
NSManagedObjectサブクラス内にオブジェクトivarbar
があり、オブジェクトが存在する限り、常にそこに存在する必要があります。
が正しく作成されることを確認するために、作成時に作成するようにfoo
awakeFromInsertをサブクラス化しました。ストアからフェッチされたときに確実に存在するように、awakeFromFetchでも同じことを行いました。foo
bar
foo
bar
これに対抗するために、foo
willTurnIntoFault内とprepareForDeletionでリリースします。
ただし、deleteを実行するbar
と、prepareForDeletionとwillTurnIntoFaultの両方が呼び出され、foo
2回解放されることがわかりました。
おそらくprepareForDeletionでリリースできないことはわかっていますが、ここでのベストプラクティスを知りたいので、何かが障害になったことなどを理解しています。通常のオブジェクトの場合は、作成するだけです。foo
initで、deallocで破棄します。
ありがとう!