我设置了一个 Core Data 对象图,这样
Grandparent--(hasMany)-->>Parent--(hasMany)-->>Child
并且每个实体都有一个'modified'
属性。我想执行一个提取,返回每个祖 parent 实体,在特定日期之后修改日期。这应该包含修改日期在该点之后的所有父实体,子实体也是如此。
我可以使用以下方式轻松获取祖 parent 的列表
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"modified > %@", lastSyncDate];
有什么方法可以编写谓词以便我可以用相同的方式过滤它的关系吗?谢谢!
最佳答案
你应该能够做这样的事情:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"modified > %@ OR ANY parents.modified > %@ OR ANY parents.children.modified > %@",
lastSyncDate,
lastSyncDate,
lastSyncDate];
(Parent
和 Child
的属性分别称为 parents
和 children
。只需更改它们不管你怎么称呼他们。)
更新
看来你不能那样做。我认为您实际上需要使用 SUBQUERY
。这个问题类似于你想做的:
What's better way to build NSPredicate with to-many deep relationships?
关于iphone - 过滤与核心数据的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445901/