[CalCalendarStore eventPredicateWithStartDate]
メソッドで返されるCalEventsのNSArray
があります。返されたイベントから、イベントのタイトル== @"on call"
(大文字と小文字を区別しない)のイベントのみを保持しようとしています。
次のコードで、タイトルincludes@"on call"
のイベントを配列に保持できます( 'events'はCalEvents
が入力された 'NSArray'です)。
NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"];
[events filteredArrayUsingPredicate:onCallPredicate];
私は次のような述語形式の文字列を使用してみました:
@"SELF.title == 'on call'"
が、これは機能していないようです。
これを行う簡単な方法はありますか?
[NSPredicate predicateWithFormat:@"title ==[c] 'on call'"];
([c]
は、等値比較の大文字と小文字を区別しません。
@"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"