使用NSSortDescriptor使用Core Data对构建号进行排序

时间:2013-07-25 00:58:00

标签: objective-c core-data nssortdescriptor

我正在尝试将NSSortDescriptor与Core Data一起使用来对构建号/软件版本(NSStrings)进行排序。构建号实际上只是NSStrings,但它似乎很难用。我猜是因为多个不规则的小数点。

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

1.7.6
1.8
1.6.2
1.9.0.1
2.0

每一行代表一个NSString

我如何正确地做到这一点还是我应该尝试另一种方式?

1 个答案:

答案 0 :(得分:6)

使用localizedStandardCompare:的排序描述符应该产生预期的结果:

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

localizedStandardCompare:是“Finder-like”比较和包含数字的字符串 根据它们的数值排序。

Swift中:

NSSortDescriptor(key: "buildNumber", ascending: true,
            selector: #selector(NSString.localizedStandardCompare))