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

标签 swift core-data swift4

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

最佳答案

这取决于一些事情;您要获取多少个实体,您是否还想要其他任何东西,您真正的性能问题是什么?

首先使用 Instruments 来确保你的问题确实在你认为的地方。核心数据使用故障处理和批处理来提高内存和性能效率。实体的属性数据在被访问之前不会被带入内存。

如果您真的只想从您的实体中获取单个属性,那么您可以发出一个获取请求,并将 propertiesToFetch 值设置为您关心的属性。如果您使用托管对象 resultType 执行此操作,那么 AFAIK 我知道这将使用 更多 内存,因为它会使所有结果对象成为部分错误(具有这些属性填充)而不是完全故障。

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

关于swift - 是否可以只获取核心数据中实体的一个属性的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46667418/

相关文章:

ios - 什么可能导致调用工具包中的 CXErrorCodeRequestTransactionErrorUnentitled 错误?

ios - 根据内容动态调整 UITextView 的高度?

ios - 如何防止不断从 Firebase 下载图像并显示图像,即使没有互联网连接?

iphone - 帮助完成第一个核心数据项目

ios - iCloud 和核心数据不工作 - URLForUbiquityContainerIndentifier 是零

ios - 将 Xib 添加为 subview 时,Xib 框架大小不正确

ios - 在 ViewController 中创建选项卡 View 的最佳方法是什么

ios - 使用 swift 4 进行 JSON 编码/解码

ios - 快速从 .zip 文件中读取文件内容

ios - 核心数据和 didSelectRowAtIndexPath