【发布时间】:2013-10-22 02:25:16
【问题描述】:
我目前正在深入研究 Core Data,并且对使用 Core Data NSManagedObject 模型有些困惑。
例如,我会有一个 "Contact" 实体,它具有 firstname、lastname、address 等属性...
我想了解的是,如果可能的话,是否有任何“最佳实践”将 NSManagedObject 用作常规 NSObjects。
例如,我有一个服务器以 JSON 格式返回一些联系人数据,但我想将它作为某种 NSObject 返回,因此它会有自己的属性、方法等......但另一方面它会愚蠢地创建 2 个类来表示联系实体 - 一个用于处理我想从服务器数据 (NSObject) 提供经过清理的对象的情况,另一个用于处理核心数据 (NSManagedObject) 的情况。有什么方法可以将单个对象用于两个目的?在这种情况下,最佳做法是什么?
编辑: 这是我遇到的一般问题:http://pastebin.com/WHWNqj2f
【问题讨论】:
-
最佳实践是为这两种情况使用一个对象。只需在您的 NSManagedObhect 中实现自定义初始化方法 ([[YourObject alloc] initWithJSONDictionary: ..]) 并分配相应的值
-
@CarlJ - 问题是我不能只初始化一个 NSManagedObject 而不给它一个上下文。此外,我无法创建可与 Core Data 一起使用的 NSObject。这正是我遇到的问题。
-
然后创建一个 NSManageObject 将值传递给它并且不保存上下文。
-
必须能够不受限制地随机保存上下文......这是问题的一部分。例如,我有一个新创建的“联系人”对象的数组,我正在将它们与我目前在我的 SQLite 中的对象进行比较。在那条路上的某个地方,我可能不得不用一些新的更新来保存上下文,但我不希望 NSArray 中的对象包含在其中。有点难以解释,希望你明白我的意思。
-
sry,我不明白具体问题,但我总是建议使用 NSManagedObject。
标签: ios core-data nsmanagedobject nsmanagedobjectmodel