0
我正在嘗試在Swift
中創建混合模式字典,其中包含String:String
或String:Dictionary
,如下所示。誰能幫忙?如何在Swift中創建混合模式字典
var tempDict = ["Electronics":"TV"],["Home":["Kitchen":"Utensils"],["BedRoom":"Bed "],["DiningRoom":"Dining"]]
我正在嘗試在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