在多对多的CoreData关系错误上调用'count'会将集合中的所有对象都带入内存吗?

roc*_*kie 6 core-data fault

假设我有一个实体'员工'与多个关系'部门'到另一个实体'部门'.如果我有一个Employee对象的实例,而且department集合当前是一个错误,那么获取部门数量的内存最有效的方法是什么?

两个明显的选择是:

1)打电话 [myEmployee.departments count];

2)构造一个fetchRequest,只返回匹配的'employee'关系指向我的employee对象然后调用的Department对象 countForFetchRequest:

除了内存使用之外,这些方法中的任何一种都可以比其他方法快得多吗?

Jod*_*ins 0

除非您有关系KeyPathsForPrefetching,否则不会提取关系。

但是,我对您的最佳建议是始终以最直接的方式实施您的解决方案,然后再解决性能问题。众所周知,人类不擅长预测性能问题。

Instruments 是一种非常易于使用的工具,它包含在 Xcode 中。

您可以使用这两种方法轻松地运行测试,并实际比较数字,而不是仅仅接受一些陌生人的意见。