如何在Swift中创建混合模式字典
问题描述:
我正在尝试在Swift
中创建混合模式字典,其中包含String:String
或String:Dictionary
,如下所示。谁能帮忙?如何在Swift中创建混合模式字典
var tempDict = ["Electronics":"TV"],["Home":["Kitchen":"Utensils"],["BedRoom":"Bed "],["DiningRoom":"Dining"]]
答
我可能会丢失你真正想做的事,但你可以声明这样的词典:
var tempDict = ["Electronics":"TV","Home":["Kitchen":"Utensils"],"BedRoom":"Bed ","DiningRoom":"Dining"]
斯威夫特(如2.2.1)推断的tempDict
类型为[String: NSObject]
,
if let electronics = tempDict["Electronics"] as? String {
print(electronics)
}
if let home = tempDict["Home"] as? [String: String] {
print(home)
}
答
使用AnyObject:
这样你就可以铸造使用的值3210顺便说一句,如果字典是一个大的复合字典,那么Swift的编译器将会出错。所以你可以这样解决:
var tempDict: [String: AnyObject] = [
"ElectronicsString" : "TV"
]
tempDict["HomeDic"] = [
[
"Kitchen" : "Utensils",
"BedRoom":"Bed ",
"DiningRoom":"Dining",
]
]
tempDict["BetArray"] = [
"cat",
"dog"
]
我已经使用推断类型的概念,如你所说,并已使用你的例子创建我的字典。谢谢 !! – Max
@Max,Swift在推断集合类型时有时会犯大错。在这种情况下,尝试添加像'var tempDict:[String:NSObject]'或'var tempDict:[String:AnyObject]'这样的显式类型注释。 – OOPer