在任何地方保留任何托管对象是一个坏主意,这是真的吗?
Posted
技术标签:
【中文标题】在任何地方保留任何托管对象是一个坏主意,这是真的吗?【英文标题】:Is it true that it's a bad idea to retain any managed object, anywhere? 【发布时间】:2010-06-13 11:05:27 【问题描述】:因为:Core Data 拥有生命周期,它可以在今天或明天的任何时间将它们变成故障。并且可能它不会太在意retainCount。所以我很好奇是否保留托管对象
1) 有意义
2) 或 如何 它是坏的,以及 为什么 它是坏的
【问题讨论】:
【参考方案1】:保留并不会真正伤害对象,并且您不会搞砸对象的生命周期,因为 Core Data 会很乐意从您的手下对它进行故障排除。
如果您挂在 Core Data 正在删除的对象上,那么风险和坏处就是。从您的应用程序的角度来看,它已经变成了一个没什么大不了的故障。然而,下次你去触摸那个对象时,Core Data 会尝试去实现它(将它的属性等拉回内存),你会得到一个错误并让你的应用程序崩溃。
因此,保留 NSManagedObject 的行为不会导致问题,但挂在被删除的 NSManagedObject 的引用(通过分配或保留)是一件坏事。
【讨论】:
以上是关于在任何地方保留任何托管对象是一个坏主意,这是真的吗?的主要内容,如果未能解决你的问题,请参考以下文章