Say I’ve got an NSArray of Reservations objects and I would like to filter out all the ones with a certain property, like

reservationType = Event;

Here’s how you’d do it using an NSPredicate:

NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"promoType = 'Event'"];
NSArray *collector = [self.reservations filteredArrayUsingPredicate:eventPredicate];

Voila! All your reservations should now only be those of type ‘Event’.

Note 1: Single quotes around the word ‘Event’ in the predicate.

Note 2: If you pull the keyword out like so:

NSString *const kPromoTypeEvent = @"Event";

remove the single quotes in the predicate like so:

[NSPredicate predicateWithFormat:@"promoType = %@", kPromoTypeEvent]

More predicate examples:

@"salary >= 100000"
@"name BEGINSWITH 'T'"

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html