4

在选择是直接使用 NSManagedObjet 类对象作为模型还是为模型创建单独的类并创建数据映射器以将数据从这些模型类映射到 NSManagedObject 类对象时,我有点困惑。使用 Core Data 对象作为模型有什么害处吗?两种方法的优缺点是什么?

提前致谢,

问候,

tek3

4

2 回答 2

3

我读了你的问题,我认为你不是在问是直接使用 NSManagedObject 还是子类化 NSManagedObject,而是你是否应该将你的模型作为单独的类,通过你自己编写的显式方法使用 Core Data。

Core Data 旨在充当应用程序的模型层。我没有看到拥有自己的模型类、为它们编写接口并在幕后在核心数据中实现它有任何真正的好处,除非你真的需要在某个时候完全放弃核心数据的自由。

我建议您将模型类创建为 NSManagedObject 的子类。您可以自由地以任何您认为必要的方式扩展它们,超出核心数据为您提供的功能,但同时您的模型类将充分受益于核心数据框架:故障、缓存、数据完整性保证、级联删除等。 ..

于 2012-06-19T06:19:29.583 回答
1

如果您只使用NSManagedObject,在引用属性和关系时,您将无法享受方便的“dot.notation”。

此外,您将必须检索所有值valueForKey并将其设置为setValueForKey后跟字符串。这可能非常容易出错和繁琐,并且生成的代码几乎不像点符号那样可读。

最后,在您的对象类中,您可以实现各种附加功能。否则你会把这段代码放在哪里?记住有助于生成独立和可重用代码的封装原则。

于 2012-06-19T06:03:42.347 回答