使用NSPredicate iOS在具有NSArray和NSString的NSArray中查找数值[英] Find values in NSArray having NSArray with NSString using NSPredicate iOS

本文是小编为大家收集整理的关于使用NSPredicate iOS在具有NSArray和NSString的NSArray中查找数值的处理方法,想解了使用NSPredicate iOS在具有NSArray和NSString的NSArray中查找数值的问题怎么解决?使用NSPredicate iOS在具有NSArray和NSString的NSArray中查找数值问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

只有 NSArray 我可以找到如下值:

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);

Found Result 符合预期:

 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];

这里的predicate syntax会是什么??????

推荐答案

要在嵌套数组中搜索,可以在谓词中使用"ANY"运算符:

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"
    )
)

本文地址:https://www.itbaoku.cn/post/924511.html