Swift:我如何创建一个字典数组,其中每个字典都包含一个数组?

时间:2017-11-01 14:18:44

标签: arrays swift swift-dictionary

我正在尝试将我的plist中的一些数据加载到数组中。在声明一个数组时我做了类似的事情

var natureList : [Dictionary] = [] as! [Dictionary]

我收到此错误 enter image description here

这是我的plist文件 enter image description here

那么我如何声明一个数组来从我的plist加载这些数据。 ?我知道它很简单,但这个小东西正在吃我的脑袋。任何帮助赞赏。

2 个答案:

答案 0 :(得分:9)

应声明如下:

var natureList = [[String: Any]]()

或@ LeoDabus建议(感谢他):

var natureList: [[String: Any]] = []

表示natureList是一个字符串字典数组作为键,任意作为值。

如果您的目标是使用Dictionary - uanessacry-来声明它,您也可以这样做:

var natureList = [Dictionary<String, Any>]()

答案 1 :(得分:0)

Ahmad F有正确的答案,但万一你或(或未来的读者)需要在某些方面更具体,这里是如何将其分解为一个超级特定的类型......

plist中最内层的项目(摘要:第一朵花等)都是[String: String],因为键是一个字符串,因此是相关的值。

所有这些最里面的词典都保存在数组中,因此我们在前一个类型中添加了一组额外的括号:[[String : String]]

向上移动一个级别所有这些数组都在字典中,这意味着我们添加了键类型,冒号和括号:[String: [[String : String]]]

上一步中的词典都保存在一个数组中,这意味着我们在外面添加了另一组括号,留下了:[[String: [[String : String]]]]

同样,这种详细程度可能有点过分,但它有助于展示一种通过从最里层开始分解复杂数据结构并解决问题的方法。还有其他方法来打破这样的结构,但这个方法非常有效。