web-dev-qa-db-ja.com

特定のNSStringがNSArrayに存在するかどうかを確認するにはどうすればよいですか?

特定の文字列がNSArrayに存在するかどうかを確認するにはどうすればよいですか?

21
Ravi

あなたはそれを次のように行うことができます、

NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
if ( [yourArray containsObject: yourStringToFind] ) {
    // do found
} else {
    // do not found
}
47
Janak Nirmal

反復またはcontainsObjectは、検索する順序nの方法です。

一定時間のルックアップが必要な場合は、NSSetやNSHashTableなどのハッシュテーブルを維持することもできますが、スペースは増えますが時間を節約できます。

NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil];
NSSet *set = [NSSet setWithArray:strings];

NSString* stringToFind = @"two";
NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]);
NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]);   
6
bryanmac

あなたのニーズに依存します。平等を気にする場合はindexOfObject(ほとんどの場合)、または気にする場合はindexOfObjectIdenticalToは、実際には同じオブジェクト(つまり、同じアドレス)です。

ソース:

1
Steven Fisher