使用NSPredicate iOS在具有NSString的NSArray的NSArray中查找值 [英] Find values in NSArray having NSArray with NSString using NSPredicate iOS
本文介绍了使用NSPredicate iOS在具有NSString的NSArray的NSArray中查找值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用 NSArray
只有我能找到以下值:
With NSArray
only i can find values as:
NSArray *arr = [NSArray arrayWithObjects:@"299-1-1", @"299-2-1", @"299-3-1", @"399-1-1", @"399-2-1", @"399-3-1", @"499-1-1", @"499-2-1", @"499-3-1", nil];
NSString *search = @"299";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",[NSString stringWithFormat:@"%@", search]];
NSArray *array = [arr filteredArrayUsingPredicate: predicate];
NSLog(@"result: %@", array);
找到结果
按预期方式:
result: (
"299-1-1",
"299-2-1",
"299-3-1"
)
但 NSArray
NSArray
, NSString
NSArray *arr = [NSArray arrayWithObjects:[NSArray arrayWithObjects:@"299-1-1", nil],[NSArray arrayWithObjects:@"399-1-1", nil],[NSArray arrayWithObjects:@"499-1-1", nil], nil];
什么是谓词语法
这里?
推荐答案
要在嵌套数组中搜索,可以在谓词中使用ANY运算符:
To search in a nested array, you can use the "ANY" operator in the predicate:
NSArray *arr = [NSArray arrayWithObjects:[NSArray arrayWithObjects:@"299-1-1", nil],[NSArray arrayWithObjects:@"399-1-1", nil],[NSArray arrayWithObjects:@"499-1-1", nil], nil];
NSString *search = @"299";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY SELF CONTAINS %@", search];
NSArray *array = [arr filteredArrayUsingPredicate: predicate];
NSLog(@"result: %@", array);
输出:
(
(
"299-1-1"
)
)
这篇关于使用NSPredicate iOS在具有NSString的NSArray的NSArray中查找值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文