假设我的User
和File
在我的核心数据堆栈中有一个名为files
的多对多关系。在我的代码中,我将用户的文件加载到NSArray
并遍历数组,在用户的文件上执行各种功能。我有一个用户拥有7,000个文件。我相信我的代码可以处理用户文件的较小“块”而不是一次整个7,000块。我知道有一个fetchLimit
可用(并且在SQLLite存储中只会检索fetchLimit
设置的数量) - 所以,我应该忽略files
关系而是进行有限的提取使用setFetchLimit
?建议是最受欢迎的,谢谢!
如果有人有示例代码可以实现我认为我需要的东西,那就更好了。
答案 0 :(得分:1)
关系不是提取,因此提取限制不适用。您可以使用具有提取限制的fetched属性,但是您将失去关系的优势。
但是,我非常怀疑你需要做什么。除非你已经完成测试并发现大关系导致了问题,否则没有理由期望它会发生。 Core Data有很多技巧可以节省在幕后使用的资源。我认为一个大的简单关系实际上不太可能导致问题。核心数据不会盲目地加载到7,000个实例化对象中。
在添加额外复杂性之前进行测试。记住Donald Knuths的'axoim “过早优化是所有邪恶的根源。”燃烧时间来解决你实际上不会实际存在的问题是一种浪费,并增加了不必要的和危险的复杂性。