【问题标题】:Why are NSManagedObject and NSEntityDescription separate classes?为什么 NSManagedObject 和 NSEntityDescription 是不同的类?
【发布时间】:2011-03-30 07:03:31
【问题描述】:
似乎NSEntityDescription 对象描述了数据,而NSManagedObject 对象包含相应的数据。如果你有一个普通的NSObject 子类,数据的描述和实际数据在同一个地方,不是吗。好吧,至少描述在类中,数据在对象中。您可以将对象视为对其包含的变量类型的描述。
那么为什么Core Data 将描述数据的类和包含数据的类分开呢?是不是跟过错有关?
【问题讨论】:
标签:
iphone
cocoa
core-data
nsmanagedobject
nsentitydescription
【解决方案1】:
如果你有一个普通的 NSObject 子类,数据的描述和实际的数据在同一个地方,不是吗。
没有。类是对象的描述,实例是对象(包括它的数据。
那么为什么Core Data 将描述数据的类和包含数据的类分开呢?是不是跟过错有关?
不是,因为模型的描述本质上不同于符合模型的数据的实例化。这是计算中的标准事物,例如对于 SQL 数据库,数据的描述(DDL)不是数据(实际的数据库)。对于 XML,描述(模式或 DTD)不是实际的 XML 数据。