【发布时间】:2010-11-04 07:12:40
【问题描述】:
我在 NSManagedObject 子类 bar 中有一个对象 ivar foo,只要该对象存在,我就需要一直在那里。
为了确保正确创建 foo,我将 awakeFromInsert 子类化为在创建 bar 时创建 foo。我在 awakeFromFetch 中做了同样的事情,以确保在从商店获取 bar 时,foo 在那里。
为了解决这个问题,我在 willTurnIntoFault 和 prepareForDeletion 中释放 foo。
然而,事实证明,当我删除bar 时,prepareForDeletion 和 willTurnIntoFault 都会被调用,释放 foo 两次。
我意识到我可能不能在 prepareForDeletion 中释放它,但我想知道这里的最佳实践是什么,所以我明白什么时候会变成错误等。对于普通对象,我d 只需在 init 中创建 foo 并在 dealloc 中销毁它。
谢谢!
【问题讨论】:
标签: iphone core-data nsmanagedobject