如何在groupby数组之后保持相同的顺序到Dictionnary swift

时间:2016-06-13 14:57:41

标签: ios swift dictionary

我有这样的数组类型:

let types = ["Notification","Type1","Type2","Type3"..."TypeN"]

我正在使用此扩展来按类型

对数组进行分组
extension SequenceType {
    func groupBy<U : Hashable>(@noescape keyFunc: Generator.Element -> U) -> [U:[Generator.Element]] {
        var dict: [U:[Generator.Element]] = [:]
        for el in self {
            let key = keyFunc(el)
            if case nil = dict[key]?.append(el) { dict[key] = [el] }
        }
        return dict
    }
}

问题是我得到了奇怪的顺序,通知类型不是我字典中的第一个元素。可以将my types数组的顺序保持在字典中吗?

1 个答案:

答案 0 :(得分:2)

来自Apple文档:

  

与数组中的项目不同,项目中的项目   字典没有指定的顺序。

因此,您无法将它们按字典顺序排列。