在Core-Data中使用谓词或关系有什么好处?

时间:2017-08-26 18:00:39

标签: ios core-data

我上网了,但几个小时之后还没有意识到是否最好使用谓词或关系来获取数据以获得最佳性能。这是我的方案,假设我有两个实体Entity AEntity BEntity AEntity B一对多关系。 Entity A -->> Entity B

两者都从网络服务获取信息,然后使用关系选项,我首先从实体获取信息,填写Entity B,然后填写Entity A我需要从Entity B中获取与Entity A有关系的提取(对于我Entity A中的每个记录),假设 id字段和必须将每个匹配添加到核心数据关系中。

另一方面,那就是没有关系,我只需填写两个实体,当我需要与Entity A Entity B相关的记录时,只需执行提取请求谓词引用 id字段,这就是全部。

乍一看似乎使用引用的第一个案例效率低,但我不知道关系的使用是否具有后续的优越性能搜索和应用程序的整体操作。

我希望有人可以帮助我澄清我的怀疑。谢谢

1 个答案:

答案 0 :(得分:1)

我在使用聊天应用时遇到了类似的体验。聊天和聊天中的每条消息都可以包含许多消息(通常超过1000条消息)。我想找到某种类型的所有消息(例如所有视频消息)。对于在Messages上运行获取请求比在关系上运行谓词要快10到100倍。

与fetchRequests相比,关系真的很快。