在任何地方保留任何托管对象是不是一个坏主意?

时间:2010-06-13 11:05:27

标签: iphone core-data

因为:核心数据拥有生命周期,它可以在今天或明天的任何时间将它们变成故障。也许它不会关心retainCount。所以我很好奇是否保留托管对象

1)有道理

2)或 有多糟糕,为什么不好

1 个答案:

答案 0 :(得分:3)

保留并不会真正伤害对象,并且您不会搞砸对象的生命周期,因为Core Data会很高兴地从您身下对其进行故障排除。

如果您挂在Core Data正在删除的对象上,那么风险就是风险。从你的应用程序的角度来看,它已经变成了一个没什么大不了的错误。但是,下次你去触摸那个对象并且Core Data试图实现它(将其属性等拉回到内存中)时,你会收到一个错误并导致应用程序崩溃。

因此,保留NSManagedObject的行为不会引起问题,但挂起到被删除的NSManagedObject的引用(通过赋值或保留)是件坏事。