3

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

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

我收到此错误 在此处输入图像描述

这是我的 plist 文件 在此处输入图像描述

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

4

2 回答 2

9

应声明如下:

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

或者正如@LeoDabus建议的那样(感谢他):

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

意味着这natureList是一个字符串字典数组作为键和任何作为值。

如果您打算使用Dictionary-which is uanessacry- 来声明它,您也可以这样做:

var natureList = [Dictionary<String, Any>]()
于 2017-11-01T14:21:41.110 回答
0

Ahmad F 有正确的答案,但以防万一您(或未来的读者)在某些时候需要更具体,这里是如何将其分解为超级具体的类型……</p>

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

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

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

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

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

于 2017-11-01T14:58:36.177 回答