是否可以获取核心数据中实体的一个属性的数据?

时间:2017-10-10 12:58:49

标签: swift core-data swift4

我在Core Data中有一个具有多个属性的实体。为了提高应用程序的性能,我想只获取该实体的一个属性。这可能吗,如果可以,那怎么样?或者我应该只使用谓词来获取我需要的实体,并从中访问其属性的值?感谢。

2 个答案:

答案 0 :(得分:1)

这取决于一些事情;你拿到了多少实体,你有没有想要别的什么,你真正的性能问题是什么?

首先使用Instruments来确保您的问题实际上在您认为的位置。核心数据使用错误和批处理使其具有非常高的内存和性能。实体的属性数据在被访问之前不会被带入内存。

如果您确实只想从实体中获取单个属性,则可以创建一个获取请求,并将propertiesToFetch值设置为您关注的属性。如果使用托管对象resultType执行此操作,那么AFAIK我知道这将使用 more 内存,因为它会使所有结果对象成为部分错误(填充了这些属性)比完全缺陷。

如果您使用字典resultType,那么您根本不会找回任何托管对象,只会填充一个填充了相关属性的字典数组。

答案 1 :(得分:0)

您可以获得单一财产。这是Apple's way