我想要这段代码的 Swift 版本:
NSArray *sortedNames = [names sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
最佳答案
var names = [ "Alpha", "alpha", "bravo"]
var sortedNames = names.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }
更新:根据其他 SO 用户的建议提供解释。
与 ObjC 不同,在 Swift 中,您有 sorted()(和 sort())方法,该方法接受您提供的闭包,该闭包返回一个 bool 值以指示一个元素应该在另一个元素之前 (true) 还是之后 (false) . $0 和 $1 是要比较的元素。我使用 localizedCaseInsensitiveCompare 来获得您要查找的结果。现在,localizedCaseInsensitiveCompare 返回排序类型,因此我需要修改它以返回适当的 bool 值。
Swift 2 更新:
sorted
和 sort
被替换为 sort
和 sortInPlace
关于swift - 如何在 Swift 中对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223058/