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
}];