【发布时间】:2014-11-08 02:04:22
【问题描述】:
我是 Swift 和 Objective-C 的新手。
我有一个表视图控制器,我在其中声明了一个字典和一个数组:
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 中成功完成了这个表格视图控制器,为了按字母顺序对partsSectionTitles 进行排序,我使用了:
partsSectionTitles = [[parts allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
所以,我的问题是:如何在 Swift 中编写前面的 Objective-C 代码?提前感谢您的回答。
更新:我能够使用你们提供的答案中的点点滴滴解决问题。所以谢谢!这是我所拥有的:
我将部件字典声明为:
var parts = [String:[String]]()
这让我可以为每个键提供多个值。这是一个巨大的帮助。
然后我能够创建partsSectionTitles 并对其进行排序:
partsSectionTitles = [String](parts.keys)
partsSectionTitles.sort(){ $0 < $1 }
这很有效,因为我没有收到任何错误。
【问题讨论】:
-
您因未发布您尝试过的内容而被否决。我相信你已经尝试了几件事。发布您到目前为止所拥有的内容,我们可以帮助您修复它:)
-
如果你碰巧什么都没试过,看看 Swift 的全局排序功能。您可以将partsOfNovel.keys 与闭包一起传递给它以进行排序。
-
Swift 的 Sorted 函数是一种简单的方法,您可以在 Apple 的 Swift's Book 中找到解释。 Closures
-
是的,我尝试了一些我现在不记得的东西。下次我提出问题时,我会尝试发布我尝试过的内容。否决票是不必要的,但谢谢......我猜。
标签: ios arrays sorting swift nsdictionary