我正在尝试按键(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/

10-11 18:03