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

W D*_*son 2 core-data objective-c nssortdescriptor

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

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

1.7.6
1.8
1.6.2
1.9.0.1
2.0
Run Code Online (Sandbox Code Playgroud)

每行代表一个NSString.

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

Mar*_*n R 6

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

[NSSortDescriptor sortDescriptorWithKey:@"buildNumber"
                              ascending:YES
                               selector:@selector(localizedStandardCompare:)];
Run Code Online (Sandbox Code Playgroud)

localizedStandardCompare: 是"Finder-like"比较,包含数字的字符串根据其数值排序.

Swift中:

NSSortDescriptor(key: "buildNumber", ascending: true,
            selector: #selector(NSString.localizedStandardCompare))
Run Code Online (Sandbox Code Playgroud)