web-dev-qa-db-ja.com

Objective-Cでの文字列比較

現在、SOAP= iPhoneアプリと通信するWebサーバーをセットアップしています。GUIDを含む文字列を返しています。これを別の文字列と比較すると、奇妙な結果が得られます。

なぜこれは発火しないのですか?確かに2つの文字列は一致していますか?

NSString *myString = @"hello world";

if(myString == @"hello world")
    return;
80
ingh.am

使用 -isEqualToString:メソッドは、2つの文字列の値を比較します。 C ==演算子は、オブジェクトのアドレスを単純に比較します。

if ([category isEqualToString:@"Some String"])
{
    // Do stuff...
}
188
jlehr

必要に応じて、大文字と小文字を区別する比較または大文字と小文字を区別しない比較を使用できます。大文字と小文字は区別されます:

if ([category isEqualToString:@"Some String"])
{
   // Both strings are equal without respect to their case.
}

大文字と小文字を区別しないのは次のとおりです。

if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame)
{
   // Both strings are equal with respect to their case.
}
46
mxg

文字列を以下の関数と比較できます。

NSString *first = @"abc";
NSString *second = @"abc";
NSString *third = [[NSString alloc] initWithString:@"abc"];
NSLog(@"%d", (second == third))  
NSLog(@"%d", (first == second)); 
NSLog(@"%d", [first isEqualToString:second]); 
NSLog(@"%d", [first isEqualToString:third]); 

Output will be :-
    0
    1
    1
    1
3
Vikram Pote