Xcode 在NSArray中搜索多个项目
我有一个NSArray,很多值都有相同的值(我知道这不是创建数组的最佳方法)。如何在数组中搜索字符串并让它返回索引数组。例如,如果我想在数组中搜索“DJ Ez”,我怎么能让它返回索引等于该字符串的所有索引?到目前为止,我已经尝试过:Xcode 在NSArray中搜索多个项目,xcode,search,nsarray,Xcode,Search,Nsarray,我有一个NSArray,很多值都有相同的值(我知道这不是创建数组的最佳方法)。如何在数组中搜索字符串并让它返回索引数组。例如,如果我想在数组中搜索“DJ Ez”,我怎么能让它返回索引等于该字符串的所有索引?到目前为止,我已经尝试过: do { isTheObjectThere = [array containsObject: @"DJ Ez"]; if(isTheObjectThere == true){ indexOfTheObject = [array inde
do {
isTheObjectThere = [array containsObject: @"DJ Ez"];
if(isTheObjectThere == true){
indexOfTheObject = [array indexOfObject: @"DJ Ez"];
[arrayOfIndexes addObject:[NSNumber numberWithInt:indexOfTheObject]];
[array removeObjectAtIndex:indexOfTheObject];
NSLog(@"%@", [indexesForAll objectAtIndex:intCtrl]);
hasFinished = false;
}else{
hasFinished = true;
}
intCtrl++;
} while (hasFinished == false);
但是,这并不是因为当它删除该项时,它会在下一次搜索中弄乱所有索引。我该怎么办?像这样的事情怎么样:
NSIndexSet *indexes = [array indexesOfObjectsPassingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
return [obj isEqualToString:@"DJ Ez"];
}];
这将以NSIndexSet的形式返回所有匹配的索引,这允许您检查特定的索引是否匹配,或者您可以按照自己的意愿获得计数并循环匹配的索引