J'ai un NSArray
de CalEvents retourné avec le [CalCalendarStore eventPredicateWithStartDate]
méthode. Des événements retournés, j'essaye de ne garder que ceux dont le titre de l'événement == @"on call"
(insensible à la casse).
Je peux conserver dans le tableau les événements dont le titre inclut@"on call"
avec le code suivant (où 'events' est un 'NSArray' rempli avec CalEvents
):
NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"];
[events filteredArrayUsingPredicate:onCallPredicate];
J'ai essayé d'utiliser une chaîne de format de prédicat comme:
@"SELF.title == 'on call'"
mais cela ne semble pas fonctionner.
Existe-t-il un moyen plus simple de procéder?
Essayez [NSPredicate predicateWithFormat:@"title ==[c] 'on call'"];
(Le [c]
rend la comparaison d'égalité insensible à la casse.)
Essayez un prédicat au format @"self.title like[c] 'on call'"
. L'exemple de code suivant génère 2 chaînes:
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"