特定の文字列がNSArrayに存在するかどうかを確認するにはどうすればよいですか?
あなたはそれを次のように行うことができます、
NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
if ( [yourArray containsObject: yourStringToFind] ) {
// do found
} else {
// do not found
}
反復または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]);
あなたのニーズに依存します。平等を気にする場合はindexOfObject
(ほとんどの場合)、または気にする場合はindexOfObjectIdenticalTo
は、実際には同じオブジェクト(つまり、同じアドレス)です。
ソース: