我在 Core Data 中有一个具有多个属性的实体。为了提高应用程序的性能,我只想获取该实体的一个属性。那有可能吗?如果可以,那该怎么做?或者我应该只使用谓词来获取我需要的实体并从中访问它们的属性值?谢谢。
最佳答案
这取决于一些事情;您要获取多少个实体,您是否还想要其他任何东西,您真正的性能问题是什么?
首先使用 Instruments 来确保你的问题确实在你认为的地方。核心数据使用故障处理和批处理来提高内存和性能效率。实体的属性数据在被访问之前不会被带入内存。
如果您真的只想从您的实体中获取单个属性,那么您可以发出一个获取请求,并将 propertiesToFetch
值设置为您关心的属性。如果您使用托管对象 resultType
执行此操作,那么 AFAIK 我知道这将使用 更多 内存,因为它会使所有结果对象成为部分错误(具有这些属性填充)而不是完全故障。
如果您使用字典 resultType
,那么您将不会返回任何托管对象,只会返回一个填充了相关属性的字典数组。
关于swift - 是否可以只获取核心数据中实体的一个属性的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46667418/