NSPredicate
Filter By Name
Section titled “Filter By Name”NSArray *array = @[ @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB71", @"title": @"Jackie Chan Strike Movie", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB72", @"title": @"Sherlock homes", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @0 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB73", @"title": @"Titanic", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB74", @"title": @"Star Wars", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB75", @"title": @"Pokemon", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @0 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB76", @"title": @"Avatar", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB77", @"title": @"Popey", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB78", @"title": @"Tom and Jerry", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 }, @{ @"id": @"7CDF6D22-8D36-49C2-84FE-E31EECCECB79", @"title": @"The wolf", @"url": @"http://abc.com/playback.m3u8", @"thumbnailURL": @"http://abc.com/thumbnail.png", @"isMovie" : @1 } ];
// *** Case Insensitive comparision with excate title match ***NSPredicate *filterByNameCIS = [NSPredicate predicateWithFormat:@"self.title LIKE[cd] %@",@"Tom and Jerry"];NSLog(@"Filter By Name(CIS) : %@",[array filteredArrayUsingPredicate:filterByNameCIS]);Find movies except given ids
Section titled “Find movies except given ids”// *** Find movies except given ids ***NSPredicate *filterByNotInIds = [NSPredicate predicateWithFormat:@"NOT (self.id IN %@)",@[@"7CDF6D22-8D36-49C2-84FE-E31EECCECB79", @"7CDF6D22-8D36-49C2-84FE-E31EECCECB76"]];NSLog(@"Filter movies except given Ids : %@",[array filteredArrayUsingPredicate:filterByNotInIds]);Find all the objects which is of type movie
Section titled “Find all the objects which is of type movie”// *** Find all the objects which is of type movie, Both the syntax are valid ***NSPredicate *filterByMovieType = [NSPredicate predicateWithFormat:@"self.isMovie = %@",@1];// OR//NSPredicate *filterByMovieType = [NSPredicate predicateWithFormat:@"self.isMovie = %@",[NSNumber numberWithBool:YES]];NSLog(@"Filter By Movie Type : %@",[array filteredArrayUsingPredicate:filterByMovieType]);Find Distinct object ids of array
Section titled “Find Distinct object ids of array”// *** Find Distinct object ids of array ***NSLog(@"Distinct id : %@",[array valueForKeyPath:@"@distinctUnionOfObjects.id"]);Find movies with specific ids
Section titled “Find movies with specific ids”// *** Find movies with specific ids ***NSPredicate *filterByIds = [NSPredicate predicateWithFormat:@"self.id IN %@",@[@"7CDF6D22-8D36-49C2-84FE-E31EECCECB79", @"7CDF6D22-8D36-49C2-84FE-E31EECCECB76"]];NSLog(@"Filter By Ids : %@",[array filteredArrayUsingPredicate:filterByIds]);Case Insensitive comparison with exact title match
Section titled “Case Insensitive comparison with exact title match”// *** Case Insensitive comparison with exact title match ***NSPredicate *filterByNameCIS = [NSPredicate predicateWithFormat:@"self.title LIKE[cd] %@",@"Tom and Jerry"];NSLog(@"Filter By Name(CIS) : %@",[array filteredArrayUsingPredicate:filterByNameCIS]);Case sensitive with exact title match
Section titled “Case sensitive with exact title match”// *** Case sensitive with exact title match ***NSPredicate *filterByNameCS = [NSPredicate predicateWithFormat:@"self.title = %@",@"Tom and Jerry"];NSLog(@"Filter By Name(CS) : %@",[array filteredArrayUsingPredicate:filterByNameCS]);Case Insensitive comparison with matching subset
Section titled “Case Insensitive comparison with matching subset”// *** Case Insensitive comparison with matching subset ***NSPredicate *filterByName = [NSPredicate predicateWithFormat:@"self.title CONTAINS[cd] %@",@"Tom"];NSLog(@"Filter By Containing Name : %@",[array filteredArrayUsingPredicate:filterByName]);Syntax
Section titled “Syntax”Remarks
Section titled “Remarks”For more details read NSPredicate in Apple documentation