Here’s an example on how to use (more than one) NSSortDescriptor. It seems equivalent to a SQL “sort by”.
NSArray *instructors = @[joe,al,babyAl];
NSSortDescriptor *nameDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
NSSortDescriptor *heightDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"height" ascending:YES];
NSLog(@"%@",[instructors sortedArrayUsingDescriptors:@[nameDescriptor,heightDescriptor]]);
Here’s an example of an NSPredicate, which seems like the equivalent of SQL “where”:
NSArray *instructors = @[joe,al,babyAl];
NSPredicate *searchForAl = [NSPredicate predicateWithFormat:@"height ==%@",@180];
NSLog(@"%@",[instructors filteredArrayUsingPredicate:searchForAl]);