【问题标题】:Correct way of dealing with Core Data NSManagedObjects in an iOS application在 iOS 应用程序中处理 Core Data NSManagedObjects 的正确方法
【发布时间】:2013-05-03 08:07:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: objective-c cocoa-touch design-patterns core-data dto


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 2014-06-29
      • 2012-10-09
      • 2012-03-21
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多