如何发布NSManagedObject对象? 当我使用 - deleteObject:删除NSManagedObjectContext中的对象(NSManagedObject)并执行保存操作时,但我没有看到,它已被释放。 我需要关心NSManagedObject内存管理吗?
我在这个项目中使用ARC,而托管对象覆盖了dealloc方法。代码看起来像
我从上下文中删除了一个托管对象,然后保存表明我不需要这个托管对象,如果上下文没有释放它是否浪费内存?
提前致谢。
答案 0 :(得分:1)
简短回答 - Core Data将管理NSManagedObject对象的内存。
更长的答案 - 即使已经告知Core Data从上下文中删除对象,您仍然可以在某处保留对(现在无效)对象的引用,比如在包含原始获取结果的数组中,或者也许是一个财产。当您使用ARC时,这些对象最终会被释放,因此它们对您的对象的任何引用都会被释放,但是当您因此原因调用deleteObject:
时,您可能不会立即看到dealloc。
如果您没有性能或内存问题,我不会太担心它。如果您那么可能值得以NSManagedObjectContext的refreshObject: mergeChanges:
方法为出发点。
答案 1 :(得分:0)
在从上下文中获取托管对象的典型场景中,然后将其删除然后保存上下文,当然,只要您不向其发送保留,就不需要释放托管对象。 / p>
PS:如果你的问题动机是学习那么好,但我建议你转到ARC。