2

我正在尝试使用NSSortDescriptorCore Data 对内部版本号/软件版本(NSStrings)进行排序。内部版本号实际上只是 NSStrings,但似乎很难做到这一点。我猜是因为小数点多且不规则。

例如,我想对以下内容进行排序。

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:是“类似Finder”的比较,包含数字的字符串根据它们的数值进行排序。

斯威夫特:

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