当您使用具有一组托管对象作为属性的托管对象时,我对使用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和原始信息。
答案 0 :(得分:0)
我的问题是高效的Table View管理的最佳实践是什么?
过早优化是万恶之源(Donald Knuth)
但是,Core Data不是关系数据库管理系统。在核心数据关系中是引用。所以使用那些参考。这是默认值。 (Core Data使用错误和unquing,所以我不希望有太大的区别。但如果你遇到运行时行为的问题,你仍然可以在SO上发布Q.)