使用 Swift 中的对象和键初始化字典 4
Initialise Dictionary with Objects and Keys in Swift 4
我正在尝试使用对象(数组)和相应的键来初始化字典。我遇到了崩溃,它说 [NSDictionary initWithObjects:forKeys:]: count
of objects (12) differents from count of keys (1)" 。不确定我在这里遗漏了什么。有人可以帮忙吗?
下面是我的代码。
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])
它在最后一行代码中崩溃了。
下面是我想要达到的效果
我的月词典应该有
values = (
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
);
您正在使用 NSDictionary
(不是 Swift 的 Dictionary
)方法,该方法采用对象数组和匹配的键数组 - 注意复数形式!您有一个键,其匹配值是一个数组。只需使用 Swift 字典文字:
let monthDictionary = [ "values" : months ]
注意:如果您打算添加更多键和值,您将希望使用 var
而不是 let
。
我正在尝试使用对象(数组)和相应的键来初始化字典。我遇到了崩溃,它说 [NSDictionary initWithObjects:forKeys:]: count
of objects (12) differents from count of keys (1)" 。不确定我在这里遗漏了什么。有人可以帮忙吗?
下面是我的代码。
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])
它在最后一行代码中崩溃了。
下面是我想要达到的效果
我的月词典应该有
values = (
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
);
您正在使用 NSDictionary
(不是 Swift 的 Dictionary
)方法,该方法采用对象数组和匹配的键数组 - 注意复数形式!您有一个键,其匹配值是一个数组。只需使用 Swift 字典文字:
let monthDictionary = [ "values" : months ]
注意:如果您打算添加更多键和值,您将希望使用 var
而不是 let
。