Swift NSFetchedResultsController嵌套对象的最佳实践

时间:2016-08-23 03:22:55

标签: swift uitableview core-data uiview nsfetchedresultscontroller

当您使用具有一组托管对象作为属性的托管对象时,我对使用NSFetchedResultsController和Core Data时的最佳做法有疑问,例如:

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为&#34; SomeObject&#34;填充UITableView。实例。当用户选择其中一个表元素时,它会转到另一个具有SomeObject实例详细信息的UIView以及一个分配了OtherObjects列表的UITableView。

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

1 个答案:

答案 0 :(得分:0)

  

我的问题是高效的Table View管理的最佳实践是什么?

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

但是,Core Data不是关系数据库管理系统。在核心数据关系中是引用。所以使用那些参考。这是默认值。 (Core Data使用错误和unquing,所以我不希望有太大的区别。但如果你遇到运行时行为的问题,你仍然可以在SO上发布Q.)