36

メソッドで返されるNSArrayCalEvents があり[CalCalendarStore eventPredicateWithStartDate]ます。返されたイベントから、イベントのタイトル == @"on call"(大文字と小文字を区別しない) のもののみを保持しようとしています。

タイトルに次のコードが含まれる @"on call"イベントを配列に保持できます (ここで、「イベント」は が入力された「NSArray」ですCalEvents)。

NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"];
[events filteredArrayUsingPredicate:onCallPredicate];

次のような述語フォーマット文字列を使用してみました。

@"SELF.title == 'on call'"しかし、これはうまくいかないようです。

これを行う簡単な方法はありますか?

4

2 に答える 2

107

試す[NSPredicate predicateWithFormat:@"title ==[c] 'on call'"];

([c]は、等値比較で大文字と小文字を区別しません。)

于 2010-06-03T15:35:38.560 に答える
10

format で述語を試してください@"self.title like[c] 'on call'"。次のサンプル コードは、2 つの文字列を出力します。

NSArray* ar = [NSArray arrayWithObjects:@"on call", @"I'm on call", @"lala", @"On call", nil];
NSArray* filt = [ar filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self like[c] 'on call'"]];
NSLog([filt description]);

//Output
"on call",
"On call"
于 2010-06-03T15:37:42.743 に答える