1

当我使用涉及数据库和 ORM(对象关系管理器)的 Java 应用程序时,架构通常是分开的,因此在数据库层中使用数据库实体时,您直接使用实体。但是,如果您需要访问 GUI 中的实体,您将创建实体的数据传输对象 (DTO),然后在 GUI 层中使用它。

iOS 应用程序中的首选方法是什么?

一个例子是,我从 Core Data 中提取以检索 ViewController 中的一些对象,然后在 ViewController 中的 TableView 中显示结果。在显示结果之前是否需要将NSManagedObjects 转换为 DTO?

4

1 回答 1

3

iOS 应用程序中的首选方法是什么?在显示结果之前是否需要将 NSManagedObjects 转换为 DTO?

不,这不是必需的。托管对象已经是包装数据库实体的(通用)对象。您可以使用 -valueForKey: 调用访问托管对象的属性(即实体属性)。但首选方法是继承 NSManagedObject 以适应您的实体。在 Xcode 中有一个选项可以自动生成子类(编辑器-> 生成 NSManagedObject 子类)。这样您就可以为您的实体获得自己的子类对象,并可以使用点符号访问它们的属性。在获取对象时,只需让结果属于该子类的类型。

如果要向实体对象添加自定义方法,则应在托管对象子类上创建一个类别。这是因为如果您更改数据库方案并且必须让 xcode 重新创建您的子类,它会完全覆盖 并且您的自定义方法将丢失。

于 2013-05-03T09:18:59.133 回答