我有一个数组
NSArray *arry = [[NSArray alloc]initWithObjects:@"1322",@"13222",@"13322",@"14322",@"13522",@"21322",@"11322",@"13212" ,nil];
我希望获得具有对象的数组
@"1322",@"13222",@"13322",@"13212"
你能告诉我如何在这个过滤器中使用谓词。
答案 0 :(得分:3)
我不确定我是否理解你的问题(以及评论)。
要查找array
中包含在另一个数组wanted
中的所有对象,
你可以使用“SELF IN%@”谓词:
NSArray *array = [[NSArray alloc] initWithObjects:@"1322",@"13222",@"13322",@"14322",@"13522",@"21322",@"11322",@"13212" ,nil];
NSArray *wanted = [[NSArray alloc] initWithObjects:@"1322", @"13522", @"999", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", wanted];
NSArray *filtered = [array filteredArrayUsingPredicate:predicate];
NSLog(@"%@", filtered);
输出:
( 1322, 13522 )
答案 1 :(得分:1)
尝试使用此
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like [c]'1*1*1'"];
NSArray *arry = [NSArray arrayWithObjects:@"1322",@"13222",@"13322",@"14322",@"13522",@"21322",@"11322",@"13212", nil];
NSArray *resltArry = [array filteredArrayUsingPredicate:predicate];
答案 2 :(得分:0)
NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF like [c]'13***'"];
NSArray *array = [NSArray arrayWithObjects:@"11321", @"13121", @"23121", @"1111", nil];
NSArray *resultArray = [array filteredArrayUsingPredicate:p];
NSLog(@"%@",resultArray);
O / P
( 13121,
)
您也可以参考此链接 thisone
答案 3 :(得分:0)
NSArray *yourArray = [[NSArray alloc]initWithObjects:@"1322",@"13222",@"13322",@"14322",@"13522",@"21322",@"11322",@"13212" ,nil];
NSArray *filter = [[NSArray alloc] initWithObjects:@"1322", @"13522", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", filter];
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];
此filteredArray
将包含您过滤的数据。我认为它也会起作用。