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

Swift : How do i create an array of dictionaries, where each dictionary contains an array inside them?

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

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

我收到这个错误

这是我的 plist 文件

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

应声明如下:

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

或@LeoDabus 建议(感谢他):

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

意味着 natureList 是一个字典数组,其中的字符串作为键,任何作为值。

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

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

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

plist 中最里面的项目(摘要:第一朵花等)都是 [String: String] 因为键是字符串,关联值也是。

所有最里面的字典都保存在数组中,因此我们在之前的类型周围添加了一组额外的括号:[[String : String]].

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

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

同样,这种详细程度可能有点矫枉过正,但它对于演示一种从最内层开始逐步解决复杂数据结构的方法很有用。还有其他方法可以分解这样的结构,但这种方法非常有效。