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

查看:113
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆