tGi*_*ani 5 iphone core-data objective-c ios
我有一个场景,我必须根据给定列的多个值从Core Data中获取多个记录.用于此目的的常见SQL查询将是
SELECT * FROM suppliers
WHERE supplier_name in ('IBM', 'Hewlett Packard', 'Microsoft');
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我是如何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];
Run Code Online (Sandbox Code Playgroud)
是否有正确的方法使用NSPredciate或NSExpression来使用IN
SQL的功能?请赐教.
还有一个类似的功能NSPredicate
,以及
NSArray *skus = @[];
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"AudioSKU IN %@",skus];
Run Code Online (Sandbox Code Playgroud)
而且你也不能像通常的字符串一样处理谓词字符串.您不能形成字符串数组并使用它们进行过滤.如果有多个连接使用NSCompoundPredicate
.
一个很好的参考使用NSPredicate来过滤数据
归档时间: |
|
查看次数: |
720 次 |
最近记录: |