サンプルソース
#importNSPredicateの書き方int main(int argc, const char * argv[]) { @autoreleasepool { id tst = [NSArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",nil]; //oneからsixまでのObject配列を作成 id pred = [NSPredicate predicateWithFormat:@"self BEGINSWITH 'f'"]; id filtered = [tst filteredArrayUsingPredicate:pred]; NSLog(@"%@",filtered); return 0; } return 0; }
@"キーパス 演算子 リテラル"
キーパスとは、演算対象の要素をことを差し、配列に保管されてるObject自体を指す場合はself、長さなどそれぞれの性質でフィルタリングを行う場合はlengthなどと書きます。
演算子の種類文などで使われる演算子に加えて下記の演算子を使います
BETWEEN-一定の範囲を指定し、指定された数の間の文字数のObjectを出力
【例】
id bet = [NSArray arrayWithObjects:[NSNumber numberWithInt:2],
[NSNumber numberWithInt:5],nil];
id pred = [NSPredicate predidateWithFormat:@"length BETWEEN %@",bet];
BEGINSWITH、ENDWITH-指定のリテラルから始まる/終わる要素を取り出す
CONTAINS-指定のリテラルが含まれるもののみを取り出す
LIKE-*や?などのワイルドカードをつかった取り出し
MATCHES-正規表現や完全マッチしたものを取り出す
フィルタリングを行う処理を自前で書かなくても指定するだけで抽出してくれるので便利です
No response to “NSArrayの内容をフィルタリングして取り出す”
Leave a Reply