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