Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSPredicate用于数组的数组_Ios_Objective C_Arrays_Nsarray - Fatal编程技术网

Ios NSPredicate用于数组的数组

Ios NSPredicate用于数组的数组,ios,objective-c,arrays,nsarray,Ios,Objective C,Arrays,Nsarray,我有以下情况: NSArray( NSArray( string1, string2, string3, string4 ) , NSArray( string1, string2, string3, string4 ) ) 我需要的是一个谓词,它返回一个数组,该数组包含与string1相关的objectAtIndex:0中的特定

我有以下情况:

NSArray(
    NSArray(
        string1,
        string2,
        string3,
        string4
    )
    ,
    NSArray(
        string1,
        string2,
        string3,
        string4
   )
)
我需要的是一个谓词,它返回一个数组,该数组包含与string1相关的objectAtIndex:0中的特定字符串。我应该取回整个数组,因为我需要处理该数组中的其他字符串。可能吗

我目前试图做的是:

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"ANY SELF contains[cd]  %@",searchText];

searchData = [myArray filteredArrayUsingPredicate:resultPredicate];
NSLog(@"array %@",searchData);` 
我的问题是,当string1、string2、string3、string4中的任何一个包含搜索文本时,我的代码都会返回数组,而不仅仅是string1,而且我无论如何都找不到来实现我的目标

My is谓词现在已经有了块,通常是一个损失,特别是当您遇到这样的问题时。您可以使用以下工具到达您想要的位置:

NSIndexSet *indexes = 
 [myArray indexesOfObjectsPassingTest:^BOOL(NSArray *innerArray, __unused NSUInteger idx, __unused BOOL *stop) {
     // your test on innerArray here, returning BOOL
 }];
NSArray *searchData = [myArray objectsAtIndexes:indexes];
或者有点欺骗(这不是一个内置的方法):


我不能理解你的要求,你能详细说明一下吗?如果searchText将“str”,那么您想要得到什么?您能告诉我您想要什么类型的输出吗?一个标准化数组还是什么?谢谢,我发现你的代码对我的应用程序中的其他搜索非常有用,所以我将把你的答案标记为解决方案:)谢谢你的帮助
NSArray *searchData = [myArray objectsPassingTest:^BOOL(NSArray *innerArray) {
     // your test on innerArray here, returning BOOL
 }];