こんにちは私はNSStringが特定の値と等しいかどうかを調べることができるかどうか調べています。私はここでNSString =特定の文字列値かどうかをチェックする方法は?
if (mystring == @"Johns"){
//do some stuff in here
}
こんにちは私はNSStringが特定の値と等しいかどうかを調べることができるかどうか調べています。私はここでNSString =特定の文字列値かどうかをチェックする方法は?
if (mystring == @"Johns"){
//do some stuff in here
}
if ([mystring isEqualToString:@"Johns"]){
//do some stuff in here
}
の線に沿って考えています
はあなたには、いくつかの状況で使用する場合があります別の方法である:
NSArray * validNames = @[ @"foo" , @"bar" , @"bob" ];
if ([validNames indexOfObject:myString].location != NSNotFound)
{
// The myString is one of the names in the valid names array
}
それとも、名前が大量にある場合配列内でオブジェクトを見つけるほうが配列よりも速いので、配列内でNSSet
を使用できます((O(Log N)
とO(N)
)
NSSet * validNamesSet = [NSSet setWithArray:validNames];
if ([validNamesSet containsObject:myString])
{
// This is faster than indexOfObject for large sets
}
NSSet
とNSArray
がNSString
インスタンスにisEqualToString:
を呼ぶであろうisEqual:
を使用しているため、これらのメソッドは動作します。
いつ 'isEqualToString'メソッドを使ってforループとは対照的に' location'アプローチを使いたいですか? – Pavan
@Pavan forループ(コード行数が少ない)よりも 'indexOfObject'を使う方が少し簡単です。それ以外はほとんど違いがありません。 NSSetメソッドは、大きなセットの配列をループするよりも高速ですが、ほとんどの場合、それは重要ではありません。 – Robert