Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Xcode 在NSArray中搜索多个项目_Xcode_Search_Nsarray - Fatal编程技术网

Xcode 在NSArray中搜索多个项目

Xcode 在NSArray中搜索多个项目,xcode,search,nsarray,Xcode,Search,Nsarray,我有一个NSArray,很多值都有相同的值(我知道这不是创建数组的最佳方法)。如何在数组中搜索字符串并让它返回索引数组。例如,如果我想在数组中搜索“DJ Ez”,我怎么能让它返回索引等于该字符串的所有索引?到目前为止,我已经尝试过: do { isTheObjectThere = [array containsObject: @"DJ Ez"]; if(isTheObjectThere == true){ indexOfTheObject = [array inde

我有一个NSArray,很多值都有相同的值(我知道这不是创建数组的最佳方法)。如何在数组中搜索字符串并让它返回索引数组。例如,如果我想在数组中搜索“DJ Ez”,我怎么能让它返回索引等于该字符串的所有索引?到目前为止,我已经尝试过:

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的形式返回所有匹配的索引,这允许您检查特定的索引是否匹配,或者您可以按照自己的意愿获得计数并循环匹配的索引