忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

【Objective-C】isEqualとisEqualToStringの違い

とりあえず文字列の比較ならisEqualToStringでいいだろと曖昧にしていたisEqualとisEqualToStringの違いついて、 述べられているのを発見したのでメモ。

objective c - Understanding NSString comparison - Stack Overflow

Note that isEqual: and isEqualToString: always return the same value, but isEqualToString: is faster.

返す値は同じだけどisEqualToStringのほうが速いらしい。 また、

Also note that isEqualToString: will cause an exception if the parameter passed to it is nil.

とありましたが、実際にためしてみたところisEqualToStringにnilを渡しても例外は起きませんでした。
警告はでるし、リファレンスを見てもnonnullになっているんで上記のとおり例外が発生するもんだと思いましたが、よく分からないですね。。。

ちなみに環境はXcode7.1.1です。

追記

記事上げた後にリファレンス見直したらパフォーマンスのことについては普通に書いてありましたね。
ほんと英語アレルギーを治したい...

NSString Class Reference

When you know both objects are strings, this method is a faster way to check equality than isEqual: