swift 需要按键排序的字典问题

问题描述

我有一个问题,我可以对字典进行排序,但结果很奇怪。


  class MyModel {
     var dict = [Date: Int]()
    ...
  }
  let sortDict = dict.sorted { (first,second) -> Bool in
      return first.key > second.key
    }
    dictDatePlacesCount = sortDict[0]

问题是我遇到了语法错误

Cannot assign value of type 'Dictionary<Date,Int>.Element' (aka '(key: Date,value: Int)') to type '[Date : Int]'

问题是我不能用这种按日期降序排序的规则创建自定义字典?

我确实探索并找到了 OrderedDictionary,但它似乎是一个外部包?

解决方法

正如 jnpdx 所说,Dictionary 方法 sorted() 返回一个 (Key,Value) 类型的元组数组(在您的情况下是 (Date,Int)。)

Swift 标准库没有有序字典。同样,正如 jnpx 所提到的,有像官方 Swift Collections 这样提供有序字典的框架/库。您可能想使用其中之一。

或者,您可以对字典中的键进行排序,然后使用它们来索引到您的内容中。