2009-09-01 5 views
9

NSMutableArrayを使用していて、objectAtIndex:intを使用して配列からオブジェクトを取得する際に問題はありませんでした。むしろ整数から配列からオブジェクトを引っ張ることは、配列を文字列で検索してインデックス位置を取得する方法です。NSMutableArray - 文字列で検索することでインデックスのインデックスを取得する

animalOptions = [[NSMutableArray alloc] init]; 
//Add items 
[animalOptions addObject:@"Fish"]; 
[animalOptions addObject:@"Bear"]; 
[animalOptions addObject:@"Bird"]; 
[animalOptions addObject:@"Cow"]; 
[animalOptions addObject:@"Sheep"]; 

NSString * buttonTitle = [animalOptions objectAtIndex:1]; 
// RETURNS BEAR 

int * objectIndex = [animalOptions object:@"Bear"]; 
// THIS IS WHAT I NEED HELP WITH, PULLING AN INDEX INTEGER WITH A STRING (ex: Bear) 

うまくいけば、これは理にかなって、そしてそこに答えがあると、私はオンラインで調べGoogleやAppleのクラス参照を介して何かを見つけることができませんでした。

答えて

34

あなたはNSArrayからindexOfObject:メソッドを使用することができます。

NSUInteger index = [animalOptions indexOfObject:@"Bear"]; 

重複したエントリがある場合は、そのオブジェクトの最低インデックスが返されます。詳細については、docsをご覧ください。

+0

これは2つの異なるNSString、つまり配列内のパラメータとパラメータが渡されますか?または、比較は「深い」ですか? – fbrereto

+0

ありがとう!驚くほど速い応答、これは私の質問を解決しました。 – bbullis21

+4

はい - 等価性は、isEqual: 'メッセージをオブジェクトに送信することによってテストされます。文字列の値が2つの異なるインスタンスであっても、NSStringインスタンスはYESを返します。 –

0

あなたはオブジェクトのインデックスを返す[array indexOfObject:object]を使うことができます。あなたがしたいと思うような方法で、あなたが指定した文字列が実際の文字列オブジェクトではないのでしかし、これを行う配列では、デフオイルが動作します

NSString * buttonTitle = [animalOptions objectAtIndex:1];// RETURNS BEARint 
objectIndex = [animalOptions indexOfObject:buttonTitle] //this will return 1 
関連する問題