特定のNSStringがNSArrayのプリネットであるかどうかを確認するにはどうすればよいですか?特定のNSStringがNSArrayに存在するかどうかをどのように確認できますか?
19
A
答えて
43
あなたが好きそれを行うことができ、
NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];
if ([yourArray containsObject: yourStringToFind]) {
// do found
} else {
// do not found
}
1
あなたのニーズによって異なります。等しいと思われる場合はindexOfObject
、そうでなければ同じオブジェクト(つまり同じアドレス)の場合はindexOfObjectIdenticalTo
のいずれかです。
出典:
6
反復処理または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]);