2016-07-16 52 views
0

我正在嘗試在Swift中創建混合模式字典,其中包含String:StringString:Dictionary,如下所示。誰能幫忙?如何在Swift中創建混合模式字典

var tempDict = ["Electronics":"TV"],["Home":["Kitchen":"Utensils"],["BedRoom":"Bed "],["DiningRoom":"Dining"]] 

回答

0

我可能會丟失你真正想做的事,但你可以聲明這樣的詞典:

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) 
} 
+0

我已經使用推斷類型的概念,如你所說,並已使用你的例子創建我的字典。謝謝 !! – Max

+0

@Max,Swift在推斷集合類型時有時會犯大錯。在這種情況下,嘗試添加像'var tempDict:[String:NSObject]'或'var tempDict:[String:AnyObject]'這樣的顯式類型註釋。 – OOPer

0

使用AnyObject:

這樣你就可以鑄造使用的值3210

順便說一句,如果字典是一個大的複合字典,那麼Swift的編譯器將會出錯。所以你可以這樣解決:

var tempDict: [String: AnyObject] = [ 
    "ElectronicsString" : "TV" 
] 

tempDict["HomeDic"] = [ 
    [ 
     "Kitchen" : "Utensils", 
     "BedRoom":"Bed ", 
     "DiningRoom":"Dining", 
    ] 
] 

tempDict["BetArray"] = [ 
    "cat", 
    "dog" 
]