web-dev-qa-db-ja.com

NSString =特定の文字列値かどうかを確認する方法は?

NS

私はの線に沿って考えています

if (mystring == @"Johns"){
    //do some stuff in here
}
67
C.Johns
if ([mystring isEqualToString:@"Johns"]){
    //do some stuff in here
}
142
Vanya

いくつかの状況で使用する別の方法を次に示します。

_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)_ vs O(N)

_NSSet * validNamesSet = [NSSet setWithArray:validNames];

if ([validNamesSet containsObject:myString]) 
{
    // This is faster than indexOfObject for large sets
}
_

NSSetおよびNSArrayNSStringインスタンスに対して _isEqual:_ を使用して _isEqualToString:_ を呼び出すため、これらのメソッドは機能します。 。

3
Robert