Using NSPredicate to determine if a string equals another string

Garry Pettet picture Garry Pettet · Jun 3, 2010 · Viewed 41.4k times · Source

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?

Answer

Cory Kilger picture Cory Kilger · Jun 3, 2010

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

(The [c] makes the equality comparison case-insensitive.)