使用 NSPredicate 遍历多个 Core Data 对象
Posted
技术标签:
【中文标题】使用 NSPredicate 遍历多个 Core Data 对象【英文标题】:Traversing multiple Core Data objects using NSPredicate 【发布时间】:2009-03-02 08:24:07 【问题描述】:我遇到了 Cocoa 中的核心数据模型的问题。这可能是一个相当基本的问题。我的核心数据模型的一部分如下所示。给定 OutputCell 实体中单元格属性的值,我想返回相关的 HistogramBar。
我正在使用以下谓词,但它只返回一个空数组。我已经设法使用直方图实体使其工作,但我似乎无法从 HistogramBar 通过直方图遍历到 OuputCell。我使用的谓词是:
NSEntityDescription *histogramBarEntityDescription = [NSEntityDescription entityForName:@"HistogramBar"
inManagedObjectContext:[theDocument managedObjectContext]];
NSFetchRequest *histogramBarRequest = [[[NSFetchRequest alloc] init] autorelease];
[histogramBarRequest setEntity:histogramBarEntityDescription];
NSPredicate *histogramBarPredicate = [NSPredicate predicateWithFormat:@"(histogram.outputCell.cell = %@)", theOutputCell];
[histogramBarRequest setPredicate:histogramBarPredicate];
NSError *histogramBarError = nil;
NSArray *histogramsArray = [[theDocument managedObjectContext] executeFetchRequest:histogramBarRequest
error:&histogramBarError];
感谢您的帮助。
【问题讨论】:
你能多贴一点代码吗?我想查看整个提取请求。 我刚刚添加了额外的代码。 【参考方案1】:我的问题已解决,代码中的恶意注释阻止了 HistogramBar 实体的创建。在这种情况下,对一些 NSLog 的详细检查有助于发现问题。
【讨论】:
以上是关于使用 NSPredicate 遍历多个 Core Data 对象的主要内容,如果未能解决你的问题,请参考以下文章
Core Data NSPredicate 按数组中的项目过滤项目集
如何通过 NSPredicate 过滤 Core Data 托管对象?
iPhone如何使用NSPredicate按父实体过滤Core Data?
ios 如何正确使用 NSPredicate 来匹配 Core Data 的 NSString?