我有一个场景,必须从Core Data中基于给定列的多个值获取多个记录。这种目的的常见SQL查询是:
SELECT * FROM suppliers
WHERE supplier_name in ('IBM', 'Hewlett Packard', 'Microsoft');
我还没有想出如何使用本地的IN()
函数来实现这个目的。
我现在创建的NSPredicate
方式似乎有些多余,具体如下。
NSMutableArray *predicateArray = [NSMutableArray array];
[skus enumerateObjectsUsingBlock:^(NSString *sku, NSUInteger idx, BOOL *stop) {
[predicateArray addObject:
[NSString stringWithFormat:@"(AudioSKU == \"%@\")", sku]];
}];
NSString *predicateString = [predicateArray
componentsJoinedByString:@" OR "];
NSPredicate *predicate = [NSPredicate
predicateWithFormat:predicateString];
如何正确使用NSPredicate或NSExpression来使用SQL中的IN
函数?请给我指点一下。