swift - 如何在 Swift 中对数组进行排序

标签 swift

我想要这段代码的 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 更新: sortedsort 被替换为 sortsortInPlace

关于swift - 如何在 Swift 中对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223058/

相关文章:

ios - Swift UIButton 操作和 GestureRecognizer

swift - Struct 不符合 RawRepresentable 协议(protocol)?

swift - Xcode Playground 上的 SwiftUI 和 foreach 问题

ios - 在 Facebook 帖子上分享文字

ios - Swift:HEIC 图像的 PHAssetChangeRequest 失败

swift - 在以编程方式创建的 UITextView 上捕获 UITapGesture

Swift Firebase 用户数据加载时间长

ios - 从 Parse Cloud 更新 Parse Local Storage 中固定的 PFObject

ios - 是否可以处理 BarChart 列上的点击事件?

ios - 如何在应用程序终止时更新数据