【问题标题】:Swift NSFetchedResultsController Best Practice with Nested ObjectsSwift NSFetchedResultsController 嵌套对象的最佳实践
【发布时间】:2016-08-23 03:22:54
【问题描述】:

我有一个关于在使用 NSFetchedResultsController 和核心数据时的最佳实践的问题,当您有一个托管对象具有一组托管对象作为属性时,例如:

class SomeObject: NSManagedObject {
    @NSManaged var name: String
    @NSManaged var notes: String?
    @NSManaged var otherObjects: Set<OtherObject>?
}

class OtherObject: NSManagedObject {
    @NSManaged var name: String
    @NSManaged var notes: String?
    @NSManaged var parent: SomeObject
}

我正在使用 NSFetchedResultsController 为“SomeObject”实例填充 UITableView。当用户选择其中一个表格元素时,它会转到另一个 UIView,其中包含有关 SomeObject 实例的详细信息以及分配了 OtherObjects 列表的 UITableView。

我的问题是高效的表视图管理的最佳实践是什么?我应该使用父 SomeObject 元素创建另一个 NSFetchedResultsController 来过滤和查询数据库,还是应该在初始数据查询期间使用提取的 OtherObjects 填充表?我将 SomeObject 实例注入到下一个 UIView 中,因此新视图具有 ManagedObjectContext 和原始信息。

【问题讨论】:

    标签: swift uitableview core-data uiview nsfetchedresultscontroller


    【解决方案1】:

    我的问题是高效的表视图管理的最佳实践是什么?

    过早的优化是万恶之源(Donald Knuth)

    但是,Core Data 不是关系数据库管理系统。在核心数据中,关系是引用。所以使用那些参考。这是默认设置。 (Core Data 使用 faulting 和 uniquing,所以我不认为会有很大的不同。但如果您遇到运行时行为问题,您仍然可以在 SO 上发布 Q。)

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      相关资源
      最近更新 更多