我在Core Data中有一个具有多个属性的实体。为了提高应用程序的性能,我想只获取该实体的一个属性。这可能吗,如果可以,那怎么样?或者我应该只使用谓词来获取我需要的实体,并从中访问其属性的值?感谢。
答案 0 :(得分:1)
这取决于一些事情;你拿到了多少实体,你有没有想要别的什么,你真正的性能问题是什么?
首先使用Instruments来确保您的问题实际上在您认为的位置。核心数据使用错误和批处理使其具有非常高的内存和性能。实体的属性数据在被访问之前不会被带入内存。
如果您确实只想从实体中获取单个属性,则可以创建一个获取请求,并将propertiesToFetch
值设置为您关注的属性。如果使用托管对象resultType
执行此操作,那么AFAIK我知道这将使用 more 内存,因为它会使所有结果对象成为部分错误(填充了这些属性)比完全缺陷。
如果您使用字典resultType
,那么您根本不会找回任何托管对象,只会填充一个填充了相关属性的字典数组。
答案 1 :(得分:0)
您可以获得单一财产。这是Apple's way