假设我有一个具有一对多关系属性的 NSManagedObject 子类的实例。性能方面,怎么样
for (id item in parent.children) {
// do something with an item
}
与使用新的 NSFetchRequest 来获取这些孩子的数组并枚举该数组相比?有什么区别吗?
假设我有一个具有一对多关系属性的 NSManagedObject 子类的实例。性能方面,怎么样
for (id item in parent.children) {
// do something with an item
}
与使用新的 NSFetchRequest 来获取这些孩子的数组并枚举该数组相比?有什么区别吗?
如果您知道您将遍历所有 NSManagedObject 的关系,那么
您的原始 NSFetchRequest 应该使用 : 预取这些关系setRelationshipKeyPathsForPrefetching:
。
在这种情况下,您已经支付了原始提取的成本(当时可能更低)。
如果您在访问每个时不预取,object.relation
则必须转到核心数据以填充该关系。它可能比新的 Fetch 请求更好。
但是如果你真的想做一个新的 Fetch 请求,不要每次都从头开始创建一个,使用同一个。并使用谓词 withpredicateWithSubstitutionVariables:
不要每次都从头开始创建一个。从头开始创建新谓词是昂贵的。