このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン
前のリビジョン
次のリビジョン
|
前のリビジョン
|
blog:2013:2013-02-16 [2013-02-16 23:22] Decomo |
blog:2013:2013-02-16 [2015-01-06 11:51] (現在) |
file-ab | file-ab |
| |
辞書式(所謂昇順ソート)で並べ替えると | 辞書式(普通の昇順ソート)で並べ替えると |
| |
file-01 | file-01 |
で、この数値順ソートをCocoaで実現するにはどーしたらいいのかなー?と思って調べていたら、[[http://developer.apple.com/library/mac/#qa/qa1159/|Technical Q&A QA1159: Sorting Like the Finder]]という、そのまんまの記事がADCにあった。流石林檎様、分かっていらっしゃる。 | で、この数値順ソートをCocoaで実現するにはどーしたらいいのかなー?と思って調べていたら、[[http://developer.apple.com/library/mac/#qa/qa1159/|Technical Q&A QA1159: Sorting Like the Finder]]という、そのまんまの記事がADCにあった。流石林檎様、分かっていらっしゃる。 |
| |
上記Q&Aのコードを改造して<ilcode>NSMutableArray</ilcode>のカテゴリメソッドにするとスマートに使えて良い感じ。 | 上記Q&Aのコードを改造して''NSMutableArray''のカテゴリメソッドにするとスマートに使えて良い感じ。 |
| |
<ilcode>NSString</ilcode>配列のソートはもちろん、任意のオブジェクトの場合はソートに使う<ilcode>NSString</ilcode>インスタンス変数名を<ilcode>sortByFinderOrderWithStringObjectKey:</ilcode>に渡せばおk。 | ''NSString''配列のソートはもちろん、任意のオブジェクトの場合はソートに使う''NSString''インスタンス変数名を''sortByFinderOrderWithStringObjectKey:''に渡せばおk。 |
| |
<code objc> | <code objc> |
</code> | </code> |
| |
実際のファイル名やディレクトリ名をソートする場合は、<ilcode>- [NSFileManager displayNameAtPath:(NSString *)path]</ilcode>で得られる名前をソートしないとFinder順にはならない。なぜかというと、Finderから見えるディレクトリ名はローカライズ(~/Documents → 書類 みたいなの)された物なので。 | 実際のファイル名やディレクトリ名をソートする場合は、''- [NSFileManager displayNameAtPath:(NSString *)path]''で得られる名前をソートしないとFinder順にはならない。なぜかというと、Finderから見えるディレクトリ名はローカライズ(~/Documents → 書類 みたいなの)された物なので。 |