NSArray *arrData = [NSArray arrayWithObjects:
@\"cloud,country,plant\",
@\"country,cloud,plant\",
@\"country
Try:
NSPredicate* predicate = [NSPredicate predicateWithBlock:^(NSString* string, NSDictionary* options){
NSArray* array = [string componentsSeparatedByString:@","];
return [array containsObject:@"cloud"];
}];
Try below code,
It will work,
NSPredicate *hsPredicate = [NSPredicate predicateWithBlock:^BOOL(id _Nonnull evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
NSArray *sepretArray =[((NSString*)evaluatedObject) componentsSeparatedByString:@","];
NSPredicate *subPredicate = [NSPredicate predicateWithFormat:@"self == %@",@"cloud"];
return ([sepretArray filteredArrayUsingPredicate:subPredicate].count > 0);
}];
NSArray *arrResult = [arrData filteredArrayUsingPredicate:hsPredicate];
This one do the trick.But i don't know whether it is the efficient way of doing this.
NSArray *arrData = [NSArray arrayWithObjects:
@"cloud,country,plant",
@"country,cloud,plant",
@"country,plant,cloud",
@"clouds,country,plant"
,@"country,clouds,plant",
nil];
NSMutableArray *resArray = [[NSMutableArray alloc]init];
for(NSString *tempString in arrData)
{
NSArray *cache = [tempString componentsSeparatedByString:@","];
if([cache containsObject:@"cloud"])
{
[resArray addObject:tempString];
}
}