特定の列の複数の値に基づいて 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];
SQLの関数を使用するためにNSPredciateまたはNSExpressionを使用する適切な方法はありIN
ますか? 教えてください。