在Swift 4中使用对象和键初始化字典

时间:2018-05-17 12:52:14

标签: swift4.1

我正在尝试使用Objects(Array)和相应的键初始化Dictionary。我正在崩溃,说[NSDictionary initWithObjects:forKeys:]: count个对象(12)与键数(1)和#34; 。不知道我在这里缺少什么。有人可以为此提供帮助吗?

以下是我的代码。

 let df = DateFormatter()
        var months = [Any]()

        for monthIndex in 1...12 {
            months.append(df.monthSymbols[monthIndex - 1])
        }

        let monthDictionay = NSDictionary.init(objects: months, forKeys: ["values" as NSCopying]) 

它在最后一行代码中崩溃。

以下是我想要实现的目标

我的monthDictionary应该有

values =     (
        January,
        February,
        March,
        April,
        May,
        June,
        July,
        August,
        September,
        October,
        November,
        December
    );

1 个答案:

答案 0 :(得分:0)

您正在使用NSDictionary(不是Swift' s Dictionary)方法,该方法采用一系列对象和一组匹配的键 - 请注意复数!您有一个键,其匹配值是一个数组。只需使用Swift字典文字:

let monthDictionary = [ "values" : months ]

注意:如果您打算添加更多密钥,则需要使用var而不是let。值。