我正在尝试将NSSortDescriptor
与Core Data一起使用来对构建号/软件版本(NSStrings)进行排序。构建号实际上只是NSStrings,但它似乎很难用。我猜是因为多个不规则的小数点。
例如,我想对以下内容进行排序。
1.7.6
1.8
1.6.2
1.9.0.1
2.0
每一行代表一个NSString
。
我如何正确地做到这一点还是我应该尝试另一种方式?
答案 0 :(得分:6)
使用localizedStandardCompare:
的排序描述符应该产生预期的结果:
[NSSortDescriptor sortDescriptorWithKey:@"buildNumber"
ascending:YES
selector:@selector(localizedStandardCompare:)];
localizedStandardCompare:
是“Finder-like”比较和包含数字的字符串
根据它们的数值排序。
在 Swift中:
NSSortDescriptor(key: "buildNumber", ascending: true,
selector: #selector(NSString.localizedStandardCompare))