使用NSPredicate过滤数组数组

Dan*_*elR 9 objective-c nsarray nspredicate ios

我有以下情况:

NSArray(
    NSArray(
        string1,
        string2,
        string3,
        string4,
        string5,
    )
    ,
    NSArray(
        string6,
        string7,
        string8,
        string9,
        string10,
   )
)
Run Code Online (Sandbox Code Playgroud)

现在我需要一个返回包含特定字符串的数组的谓词.例如,包含string9的Filter Array - >我应该返回整个第二个数组,因为我需要处理该数组中的其他字符串.有任何想法吗?

Mar*_*n R 20

只是为了完整性:可以使用predicateWithFormat:以下方法完成:

NSArray *array = @[
    @[@"A", @"B", @"C"],
    @[@"D", @"E", @"F"],
];

NSString *searchTerm = @"E";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY SELF == %@", searchTerm];
NSArray *filtered = [array filteredArrayUsingPredicate:predicate];
NSLog(@"%@", filtered);
Run Code Online (Sandbox Code Playgroud)

输出:

(
    (
        D,
        E,
        F
    )
)

  • 是否有可能只将E作为嵌套数组的元素 (6认同)