【发布时间】:2012-05-11 12:36:22
【问题描述】:
core-data 的这三个类[NSManagedObject , NSManagedObjectContext , NSManagedObjectModel ] 有什么区别,我们如何用最简单的方式描述?
【问题讨论】:
标签: iphone ios core-data nsmanagedobject
core-data 的这三个类[NSManagedObject , NSManagedObjectContext , NSManagedObjectModel ] 有什么区别,我们如何用最简单的方式描述?
【问题讨论】:
标签: iphone ios core-data nsmanagedobject
在数据库方面:
当然,Core Data 不是数据库。
【讨论】:
NSManagedObjectContext 类,在NSManagedObjectModel 实例周围包裹了一个可变层。
来自 CoreData 编程指南:
您可以将managed object context 视为智能便签本。当您从持久存储中获取对象时,您会将临时副本带到便笺簿上,它们在此处形成对象图(或对象图的集合)。然后,您可以随意修改这些对象。 除非您实际保存这些更改,否则持久存储将保持不变。
【讨论】:
NSManagedObjects 表示存储在数据库中的数据。您可以将它们视为模型对象。
NSManagedObjectContext 允许您从数据库中插入、保存和检索(使用 NSFetchRequest)NSManagedObjects。”
【讨论】:
上下文是你可能会说你的对象在你阅读之后或插入到数据库之前所在的位置
要了解更多信息,请简要阅读这些主题并了解其中的区别
Add an instance of NSManagedObject to NSManagedObjectContext ok, updating the same instance failed
How do I copy or move an NSManagedObject from one context to another?
http://www.cimgf.com/2011/01/07/passing-around-a-nsmanagedobjectcontext-on-the-iphone/
【讨论】:
NSManagedObject 继承自对象,并添加了由核心数据管理所需的方法。
上下文是保存由核心数据管理的对象的位置,当您从数据库中获取对象或创建对象以保存到该对象时会发生这种情况
对象模型描述了持久存储的核心数据模式
【讨论】: