I have an NSArray of CalEvents returned with the [CalCalendarStore eventPredicateWithStartDate] method. From the events returned, I am trying to keep only those in which the title of the event == @"on call" (case-insensitive).
I am able to keep in the array those events whose title includes @"on call" with the following code (where 'events' is a 'NSArray' populated with CalEvents):
NSPredicate *onCallPredicate = [NSPredicate predicateWithFormat:@"(SELF.title CONTAINS[c] 'on call')"]; [events filteredArrayUsingPredicate:onCallPredicate]; I've tried using a predicate format string like:
@"SELF.title == 'on call'" but this doesn't seem to work.
Is there an easier way to do this?
Try [NSPredicate predicateWithFormat:@"title ==[c] 'on call'"];
(The [c] makes the equality comparison case-insensitive.)
Try predicate with format @"self.title like[c] 'on call'". The following sample code outputs 2 strings:
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"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With