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
// *** 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
// *** 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
// *** Find Distinct object ids of array ***NSLog(@"Distinct id : %@",[array valueForKeyPath:@"@distinctUnionOfObjects.id"]);
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
// *** 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
// *** 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
// *** Case Insensitive comparison with matching subset ***
NSPredicate *filterByName =[NSPredicate predicateWithFormat:@"self.title CONTAINS[cd] %@",@"Tom"];NSLog(@"Filter By Containing Name : %@",[array filteredArrayUsingPredicate:filterByName]);
Syntax
CONTAINS operator : It allows to filter objects with matching subset.
`NSPredicate *filterByName = [NSPredicate predicateWithFormat:@"self.title CONTAINS[cd] %@",@"Tom"];`
LIKE : Its simple comparison filter.
`NSPredicate *filterByNameCIS = [NSPredicate predicateWithFormat:@"self.title LIKE[cd] %@",@"Tom and Jerry"];`
= operator : It returns all the objects with matching filter value.
`NSPredicate *filterByNameCS = [NSPredicate predicateWithFormat:@"self.title = %@",@"Tom and Jerry"];`
IN operator : It allows you to filter objects with specific filter set.
`NSPredicate *filterByIds = [NSPredicate predicateWithFormat:@"self.id IN %@",@[@"7CDF6D22-8D36-49C2-84FE-E31EECCECB79", @"7CDF6D22-8D36-49C2-84FE-E31EECCECB76"]];`
NOT IN operator : It allows you to find Inverse objects with specific set.
`NSPredicate *filterByNotInIds = [NSPredicate predicateWithFormat:@"NOT (self.id IN %@)",@[@"7CDF6D22-8D36-49C2-84FE-E31EECCECB79", @"7CDF6D22-8D36-49C2-84FE-E31EECCECB76"]];`