2012-01-27 14 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

ありがとうございます。 –

関連する問題