Objective-Cの文字列比較は==ではだめ

Xcode
すこしハマったのでメモ
Objective-Cで文字列比較をするときは==ではうまく処理されないんですね。

NSString *str1 = @"おはようございまぐろ!";
NSString *str2 = @"おはようございまぐろ!";

if (str1 == str2) {
  //
  NSString *str2 = @"ひさしブリ!";
} else {
  //なぜかこっちにしかいかない。。。
  NSString *str2 = @"おはようございまぐろ!";
}

以下が正しいようです。

NSString *str1 = @"おはようございまぐろ!";
NSString *str2 = @"おはようございまぐろ!";

if ([str1 isEqualToString:str2]) {
  //ちゃんとこっちに行く
  NSString *str2 = @"ひさしブリ!";
} else {
  //
  NSString *str2 = @"おはようございまぐろ!";
}

isEqualToStringを使うのが正解です。

この記事を書いた人