核心数据每次获取时都会为同一个NSManagedObject返回一个不同的对象实例。 为什么是这样?
我最近注意到,如果我获取一个ManagedObject,其中我可以validation模型中只有一个,并且在应用程序的任何位置都没有保留,每次获取返回对象时,它都是一个不同的实例(带有指向一个不同的内存地址)。 为什么是这样?
如果没有人保留它,Core Data可以免费发布它。 如果你再次要求,它可能会在不同的内存位置。 你不能指望它是相同的对象实例。
一个给定的NSManagedObject
绑定到一个特定的NSManagedObjectContext
,所以如果你改变上下文,你必然会改变对象。 如果对象发生故障,如果MOC释放了对象,也可能会收到一个新的实例。 这是Core Data如何保持低内存使用率的一部分。
- 在多个选项卡中使用相同的NSManagedObjectContext
- 将managedObjectContext传递给UITabBarController的视图
- Xcode 8无法打开Model.xcdatamodeld
- 形成一个谓词来过滤date之间
- 在Core Data实体中检索最后一行/对象作为string
- 核心数据在iOS开发中常见的数据迁移策略是什么?
- xcodebuild:cdtool无法编译:DataModelCompile /path/to/coredatamodel.xcdatamodeld dyld:找不到符号:_OBJC_CLASS _ $ _ OS_object
- 在TableView上添加一个SearchBar
- 使用Swift核心数据瞬态值