如何使用NSManagedObject的子类?

时间:2015-10-15 14:52:57

标签: ios objective-c core-data

我正在iOS上开发一个非常大的应用程序。到目前为止,我一直在使用CoreData:

有一个类,有-(NSArray*)getAllEntries-(void)saveEntry:(Entry *)entry等方法,而Entry有一些属性,如字符串,字典,其他对象的数组可能会保存,也可能不保存在CoreData等中。大多数情况下,我使用默认的ctor初始化Entry,并通过使用{CDI商店中的NSManagedObjectvalueForKey:获取值来设置属性值。

我开始这样编码是因为当时我是obj-c的新手,而且我来自C ++ / Java背景。

现在,我正在开发应用程序中的新模块,并希望以对象的方式完成所有工作。

据我所知,如果将Entry对象作为NSManagedObject的子类,我只能使用[NSEntityDescription insertNewObjectForEntityForName:@"Entries" inManagedObjectContext:context];初始化它,这意味着它将与实体绑定?问题是,我可能想要例如从我从互联网上提取的数据中初始化该对象,我可能不想将其保存到持久性存储中。或者,我可能想要从商店中取出对象,编辑值,但不将其保存到商店。一切都很好(可能),但据我所知,如果我在用于实例化对象的上下文中调用save方法,该对象将被保存到我不想保存的商店。

所以现在我对如何继续这样做有点困惑。我的旧方式是做Core Data Ok,还是我应该使用NSManagedObject的子类并使用一些我不知道的技巧?如果是后者,这些技巧是什么?

1 个答案:

答案 0 :(得分:1)

不建议使用链接答案,但您真的想阅读Apple关于Core Data的大量文档。具体来说,谷歌“创建和修改自定义托管对象”。

(目前在此link找到。)