我正在尝试按键(The Double)订购[Double:Article]的字典。
我已经尝试了一切,现在有以下代码:
// getting an array of sorted keys
let articlesKeys = articles.keys.sort{$0 > $1}
var sortedArticles = [Double:Article]()
// trying to fill the new dictionary in a descending keys order
for key in articlesKeys
{
sortedArticles[key] = articles[key]
}
// replacing the old dictionary (articles)
// with the new and ordered one (sortedArticles)
articles.removeAll()
articles = sortedArticles
问题是“articleKeys”已排序
print(articleKeys)===> [220、218、110]
但是当我打印出“sortedArticles”或新的“articles”时:
打印(sortedArticles)===> [110:X],[220:Y],[218:Z]
字典尚未订购:(
最佳答案
字典是无序的-这是它们的本性。您只是无法对它们进行排序。但是您可以以某种方式使用数组将键和值存储为其值。
在这里阅读更多关于它们的信息http://rypress.com/tutorials/objective-c/data-types/nsdictionary
实际上有什么可以帮助您的。阅读有关keysSortedByValueUsingComparator的更多信息:
关于ios - iOS Swift如何通过按键订购字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37050513/