忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

iOSのNSStringの文字列比較に関して

わか

iOSのNSStringの文字列比較について記載します。

iOSのNSStringはisEqualToStringを使用することが多いと思いますが、
これは使用しない方が良いです。
代わりにcompareを使用する方が良いです。
理由としては、同じ文字列を比較しているのに、isEqualToStringだと
真を返さない場合があるからです。

例えばwindowsやunixなど別のOSで作成したテキストファイル内の文字列を
読み込んだ場合に発生する可能性があります。

これは文字コードによって濁点をバイトで分ける場合があるからです。
isEqualToStringはバイトをそのまま比較しますが、
compareはバイトで分けられた濁点を考慮して文字列比較してくれます。

ただパフォーマンス的にはisEqualToStringの方が早いです。
なので、アルファベットしか使わない場合や、他のシステムから文字列取得を
行わないことが分かっている場合は、isEqualToStringを使用するのもありです。


拍手[0回]

PR