如何在Swift中创建混合模式字典

问题描述:

我正在尝试在Swift中创建混合模式字典,其中包含String:StringString: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) 
} 
+0

我已经使用推断类型的概念,如你所说,并已使用你的例子创建我的字典。谢谢 !! – Max

+0

@Max,Swift在推断集合类型时有时会犯大错。在这种情况下,尝试添加像'var tempDict:[String:NSObject]'或'var tempDict:[String:AnyObject]'这样的显式类型注释。 – OOPer

使用AnyObject:

这样你就可以铸造使用的值3210

顺便说一句,如果字典是一个大的复合字典,那么Swift的编译器将会出错。所以你可以这样解决:

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

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

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