4

我最近注意到,如果我获取一个 ManagedObject ,我可以验证模型中只有一个并且没有保留在我的应用程序中的任何位置,每次获取返回对象时它都是一个不同的实例(带有指向不同的内存地址)。为什么是这样?

4

2 回答 2

4

如果没有人保留它,Core Data 可以自由地发布它。如果您再次要求它,它可能会位于不同的内存位置。你不能指望它是同一个对象实例。

于 2012-06-07T19:06:21.960 回答
1

A givenNSManagedObject与特定的 相关联NSManagedObjectContext,因此如果您更改上下文,则必然会更改对象。如果对象发生故障,如果 MOC 已释放对象,您也可能会收到一个新实例。这是 Core Data 如何保持低内存使用的一部分。

于 2012-06-07T19:06:36.547 回答