在Core Data中分离单个对象模型的组件

时间:2013-07-19 04:22:09

标签: ios cocoa-touch core-data

我正在为Core Data中的数据设计架构。我的问题:我有一个List对象。在我开始使用Core Data之前,我将它定义为NSObject的子类,但现在我正在使用Core Data,NSManagedObject等。我想知道我是否应该拆分List对象的组件,就像在这个{ {3}}到核心数据。

基本上,List对象由

组成
NSString uniqueID
NSString name
BOOL completed
BOOL notifyMe
NSDate notifyDate
NSDate creationDate

对于单个对象,这似乎是很多数据,因为NSManagedObject会强制您同时加载整个对象。在List对象之间建立一对一关系,并说一个名为ListDetails的新对象,其中List变为

是否有意义
NSString uniqueID
NSString name
BOOL completed

ListDetails

BOOL notifyMe
NSDate notifyDate
NSDate creationDate

提前感谢您的建议!

补充警告:

每个List也与名为Entity的{​​{1}}建立一对多的关系。换句话说,目前我有两个ListItem,一个EntitiesList。如果我将ListItem分解为两个组件(ListList),我的一对多关系是否仍然只与ListDetails有关?

1 个答案:

答案 0 :(得分:1)

除非您非常确定名称或唯一ID将变得超长,否则即使有六个属性(特别是两个BOOL s),内存占用量也会非常小。

如果您找到需要抓取大量List实体但只需要几个属性的地方,您可以设置一个获取请求,将其返回类型设置为字典并指定所需的属性。例如,您可以获取所有不完整的实体,需要通知并且日期已经过复合谓词,并且只需要在字典中返回名称和唯一ID。

如果你确实分手了,那么List可能会成为与ListItemListDetails有关系的中心。

如果通知日期不是用户需要一直看到的东西,你也可以将它存储为NSTimeInterval,它比NSDate轻一点,并且很容易检查它是否已经过了。< / p>