ios - Swift:按字母顺序对数组进行排序

标签 ios arrays sorting swift nsdictionary

我是 Swift 和 Objective-C 的新手。

我有一个 TableView Controller ,我在其中声明了一个字典和一个数组:

var parts = [:]
var partsSectionTitles: NSArray!

在我的 viewDidLoad 函数中,我有:

parts = [
        "Part 1" : ["X:1", "X:2", "X:3"],
        "Part 2" : ["X:1", "X:2"],
        "Part 3" : ["X:1"]
    ]

var partsSectionTitles = parts.allKeys

我已经在 Objective-C 中成功完成了这个 TableView Controller ,为了按字母顺序对 partsSectionTitles 进行排序,我使用了:

partsSectionTitles = [[parts allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

所以,我的问题是:如何在 Swift 中编写前面的 Objective-C 代码?预先感谢您的回答。

更新:我能够使用你们提供的答案中的点点滴滴解决问题。所以谢谢!这是我拥有的:

我将零件字典声明为:

var parts = [String:[String]]()

这让我可以为每个键提供多个值。这是一个巨大的帮助。

然后我能够创建 partsSectionTitles 并对其进行排序:

partsSectionTitles = [String](parts.keys)
partsSectionTitles.sort(){ $0 < $1 }

这很有效,因为我没有收到任何错误。

最佳答案

这应该可以满足您的需求。该数组包含字符串元素。

var partsSectionTitles:[String] = partsOfNovel.allKeys as [String]
var sortedNames = partsSectionTitles.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedDescending }

关于ios - Swift:按字母顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812924/

相关文章:

ios - Xcode 解析带下划线的 JSON

algorithm - 计数排序不同的方法

javascript - Console.log 仅显示打印对象的更新版本

algorithm - 使用 K 方式合并合并 N 个排序的文件

ios - 从 API 使用 Swift 动态填充 iOS TableView

ios - 带有文本 Xcode 的标签拉伸(stretch)

ios - 有没有办法隐藏Apple Watch中的默认事件指示器?

javascript - Javascript 中类似数组的对象

python - NumPy 的 : how to fill an array smartly?

c# - 如何查看 C# 数组在内存中的放置方式?