rakuishi.com

[iOS SDK] NULL と空白文字列を NSPredicate でフィルタする方法

NSPredicate は、指定した条件を抽出(フィルタ)することの出来るクラスです。例えば、配列や CoreData などのデータをふるいにかけてくれます。

今回、文字列が「ある」ものを取得したかったのですが、NULL と空白文字列で少し躓いてしまったので紹介します。

NULL と空白文字列を NSPredicate でフィルタするには、次のように記述します。

NSPredicate *predicate;
// 文字がある & NULL を取得する
predicate = [NSPredicate predicateWithFormat:@"memo != nil"];
// 文字があるものを取得する = NULL と空白文字列を取得しない
predicate = [NSPredicate predicateWithFormat:@"memo.length > 0"];

ここで、memo は僕が扱っているキーパスです。この後ろに、「.length」を付けるとその文字数をカウントしてくれます。

この predicateWithFormat で使用する条件比較文に、まだ慣れないです。

参考