2

NSSortDescriptorCore Data を使用して、ビルド番号/ソフトウェア バージョン (NSStrings) を並べ替えようとしています。ビルド番号は実際には単なる NSString ですが、これには苦労しているようです。複数の不規則な小数点のためだと思います。

たとえば、次のように並べ替えたいと思います。

1.7.6
1.8
1.6.2
1.9.0.1
2.0

各行は を表しますNSString

これを適切に行うにはどうすればよいですか、または別の方法を試す必要がありますか?

4

1 に答える 1

6

を使用するソート記述子localizedStandardCompare:は、意図した結果を生成する必要があります。

[NSSortDescriptor sortDescriptorWithKey:@"buildNumber"
                              ascending:YES
                               selector:@selector(localizedStandardCompare:)];

localizedStandardCompare:「ファインダーのような」比較であり、数値を含む文字列は数値に従ってソートされます。

スウィフトの場合:

NSSortDescriptor(key: "buildNumber", ascending: true,
            selector: #selector(NSString.localizedStandardCompare))
于 2013-07-25T05:51:25.570 に答える