iOS – CoreDataにおける検索条件の指定の仕方

CoreDataフレームワークを使用してデータを扱う場合、NSFetchRequestクラスを使用してローカルDBからデータを読み出します。この際に抽出条件を指定するのがNSPredicateクラスです。このNSPredicateクラスのインスタンスは文字列を引数とし以下のように生成することができます。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = '田村倉庫'"];
[fetchRequest setPredicate:predicate];

 

このメモでは抽出条件の指定する文字列中に記述する演算子について解説します。NOTの使い方などは一般のSQLとは異なるため、注意が必要です。

演算子 使い方 解説
= A = B AとBが等しいものを抽出
MATCHES A MATCHES B 正規表現を使ってAとBが等しいものを抽出
NOT NOT(A = B) AとBが等しくないものを抽出
カッコで囲むところがポイント
CONTAINS A CONTAINS B AにBが含まれているものを抽出
[c]オプション - 大文字小文字を区別しない
[d]オプション - 発音記号を区別しない