假设我们有一个名为“文档”的实体和另一个名为“用户”的实体。存在多对多关系,因此用户可以拥有一组文档,每个文档可以由多个用户拥有。更多文档具有“类型”属性。
现在我想获取用户 x 的所有类型为“pdf”的文档。您将如何访问这些数据?
据我所知有两种方式:
通过关系 (user.documents) 从用户中检索所有文档,并使用 NSPredicate 过滤数组(这适用于复杂对象吗?)。
使用两个谓词对“文档”实体执行提取请求。第一个指定用户,第二个负责类型。
哪种方法更好?还是有更好的方法来实现这一目标? 我想第二种解决方案要贵得多。
最佳答案
您的请求的实体应该是 Document,并且您需要在谓词中使用 ANY 操作:
[NSPredicate predicateWithFormat: @"ANY users == %@ AND type == %@", userX, @"PDF"];
请参阅关于聚合操作的部分:
关于ios - 对多个实体进行核心数据过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306291/