我正在尝试执行类似于JSON数据包的复杂Swift Dictionary声明。然而,编译器正在打击我。这就是我想要做的事情:
var icons: [[Any:Any]] = [
"categories:":[
["cat2" : [
["name":"ImageName","type":"image"],
["name":"ImageName","type":"scroll","panel":panel1],
["name":"ImageName","type":"chooser","panel":[
["name":"ImageName"]]]
]
],
["cat2" : ["name":"ImageName"]],
["cat3" : ["name":"ImageName"]],
["cat4" : ["name":"ImageName"]],
["cat5" : ["name":"ImageName"]]
],
"size":["x":"128","y":"128"]
]
我不知道如何宣布这一点。如您所知,我将第一个元素作为String,将以下子元素作为附加的Dictionaries。
我想知道Swift中这些数据结构的最佳实践方法。
提前谢谢你。
答案 0 :(得分:4)
正确的方法是 NOT 来使用字典。
您应该创建一些模型类型(最好是structs
)并将它们组合起来。
否则管理像这样的字典将是地狱。
答案 1 :(得分:1)
在这种情况下,你实际上是在宣布一个字典数组,而不是字典字典:set ASPNET_ENV = cloud
(或者更好的是,根据你的数据)[Any:[Any:Any]]
但这不会起作用,因为[String:[String:Any]]
键值实际上是一个数组,而不是一个字符串。那时你只剩下categories
然而,最重要的是,采用@ appzYourLife的方法并定义合适的模型类型会更好。