2012-01-27 112 views
0

我有一個NSArray,並且很多值都具有相同的值(我知道這不是執行數組的最佳方式)。我如何搜索數組中的字符串,並讓它返回一個索引數組。例如,如果我想搜索「DJ Ez」數組,我怎樣才能得到它,所以它返回索引等於該字符串的所有索引?到目前爲止,我已經試過這樣:在NSArray中搜索多個項目

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); 

然而,這並不時,它會刪除它打亂了下一個搜索的所有索引項的工作。我該怎麼辦?

回答

1

怎麼是這樣的:

NSIndexSet *indexes = [array indexesOfObjectsPassingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) { 
    return [obj isEqualToString:@"DJ Ez"]; 
}]; 

這應該返回所有的匹配指標作爲的NSIndexSet,它允許你做檢查,如果具體指標相匹配,或者你可以得到計數和遍歷匹配但是你希望的索引。

+0

感謝它現在的作品。 – 2012-01-28 21:02:51