具有 NSPredicate 和 OR 条件的 CoreData
Posted
技术标签:
【中文标题】具有 NSPredicate 和 OR 条件的 CoreData【英文标题】:CoreData with NSPredicate and OR condition 【发布时间】:2014-10-21 18:56:58 【问题描述】:我有一个关于 NSPredicate 的问题。
我使用这个谓词来获取status=="Compare"
的所有结果
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription @"MyEntity"
inManagedObjectContext:context];
[request setEntity:entity];
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"status == %@",@"Created"];
[request setPredicate:predicate];
但现在我会采用状态等于“Created
”OR“Readed
”的所有结果。
我必须如何更改我的谓词?
【问题讨论】:
【参考方案1】:这能解决问题吗?
[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
return [[evaluatedObject status] isEqualToString:@"Created"] || [[evaluatedObject status] isEqualToString:@"Readed"];
];
【讨论】:
【参考方案2】:试试
[NSPredicate predicateWithFormat:@"status IN %@",@[@"Created", @"Readed"]];
【讨论】:
以上是关于具有 NSPredicate 和 OR 条件的 CoreData的主要内容,如果未能解决你的问题,请参考以下文章
核心数据 - NSPredicate 用于具有相同列且满足另一个条件的对象