Ios 使用NSPredicate筛选数组的数组

Ios 使用NSPredicate筛选数组的数组,ios,objective-c,nsarray,nspredicate,Ios,Objective C,Nsarray,Nspredicate,我有以下情况: NSArray( NSArray( string1, string2, string3, string4, string5, ) , NSArray( string6, string7, string8, string9, string10, ) ) 现在我需要一个谓词来返回包含特定

我有以下情况:

NSArray(
    NSArray(
        string1,
        string2,
        string3,
        string4,
        string5,
    )
    ,
    NSArray(
        string6,
        string7,
        string8,
        string9,
        string10,
   )
)
现在我需要一个谓词来返回包含特定字符串的数组。
e、 g.包含string9->I的Filter数组应该返回整个第二个数组,因为我需要处理该数组中的其他字符串。有什么想法吗?

据我所知,您不能将其作为一行程序,因此您应该使用
predicateWithFormat:
而不是
predicateWithBlock:

像这样的东西可以满足你的需要

NSString *someString = @"Find me"; // The string you need to find.
NSArray *arrayWithArrayOfStrings = @[]; // Your array
[arrayWithArrayOfStrings filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSArray *evaluatedArray, NSDictionary *bindings) {
    return [evaluatedArray indexOfObject:someString] != NSNotFound;
 }]];
更新: Martin R证明我错了:)

只是为了完整性:可以使用
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);
输出:

( ( D, E, F ) ) ( ( D E F ) )
如果有用,请查看并回复,或者任何问题+1,我正在使用子查询进行此操作,
[NSPredicate predicateWithFormat:@“子查询(SELF,$content,$content==[c]@)”,string]
,但这不起作用。有什么建议吗?@Anupdas:你就快到了,
@“子查询(SELF,$content,$content==[c]]@.@count>0”
有效。@MartinR真棒,它有效。因此,子查询的结果应该与一些相等,以便甚至形成谓词。Thank:)@Anupdas:没错,子查询返回一个集合,但谓词的计算结果必须为true或false。是否可以只将E作为嵌套数组的元素