iphone - 过滤与核心数据的关系

标签 iphone objective-c ios ipad core-data

我设置了一个 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];

(ParentChild 的属性分别称为 parentschildren。只需更改它们不管你怎么称呼他们。)

我建议您阅读以下内容: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-215891

更新

看来你不能那样做。我认为您实际上需要使用 SUBQUERY。这个问题类似于你想做的: What's better way to build NSPredicate with to-many deep relationships?

关于iphone - 过滤与核心数据的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445901/

相关文章:

iphone - 从资源文件夹加载超过200张图片有问题吗?

iphone - 在 iPhone 屏幕中随机填充按钮

ios - 在 UITableViewCell iOS 中播放视频

ios - FBSDK_CANOPENURL_FBAPI 未声明标识符

iphone - 我们可以使用相同的 Xib(包含 UIView)来支持横向和纵向吗

ios - 如何从 NSArray 中删除具有相同值的重复对象

objective-c - copyItemAtPath -path 显示在后台线程中创建的 plist 为 null

objective-c - IOS 我可以在 appDelegate 上使用 AVAudioPlayer 吗?

ios - 尝试将数据从解析添加到 IOS 中的 NSMutableArray

ios - 如何在自定义 UITableViewCell 按钮和第二个 View 之间创建一个 segue