システムと同じ並びに日本語の文字列をソートする
NSString
の比較メソッド一覧
- (NSComparisonResult)compare:(NSString *)string; - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask; - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToCompare; - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)rangeOfReceiverToCompare locale:(nullable id)locale; - (NSComparisonResult)caseInsensitiveCompare:(NSString *)string; - (NSComparisonResult)localizedCompare:(NSString *)string; - (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)string; - (NSComparisonResult)localizedStandardCompare:(NSString *)string API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));
例として iOS の読み上げ言語の設定画面(設定>アクセシビリティ>スピーチ>声)
テストコード
カタカナの部分に関してはいずれも差異は無いが、漢字のソート結果が違っている。
localizedCompare:
や localizedStandardCompare:
は漢字の部分もOSと並びが合っている。
localizedStandardCompare:
のドキュメントを見ると
This method should be used whenever file names or other strings are presented in lists and tables where Finder-like sorting is appropriate.
Finder-like との事なので iOS, macOS のシステムの表示に合わせるには localizedStandardCompare:
を使うのが良さそう。