Я имею NSArray
из CalEvents, возвращенного с [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'"
но это, кажется, не работает.
Существует ли более легкий способ сделать это?
Попробуйте [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"