使用NSPredicate来过滤数组

我有以下情况:

NSArray( NSArray( string1, string2, string3, string4, string5, ) , NSArray( string6, string7, string8, string9, string10, ) ) 

现在我需要一个返回包含特定string的数组的谓词。 例如包含string9的filter数组 – >我应该返回整个第二个数组,因为我需要处理该数组内的其他string。 有任何想法吗?

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

从我所知道的你不能作为一个单一的线程,而不是使用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; }]]; 

更新:马丁Rcertificate我错了:)