在Array ArrayLiterialConversion错误中存储字典

时间:2015-04-02 22:00:03

标签: arrays swift dictionary

我正在尝试创建一个数组来保存字典。

var deaultScoreResults : [Dictionary<String, Int>] = [];

但是当我尝试添加字典键时:我得到的值对:

deaultScoreResults.append(["Study Up!", 1]);

错误;

  

Type&#39; Dictionary&#39;不符合协议   &#39; ArrayLiteralConvertible&#39;

2 个答案:

答案 0 :(得分:4)

围绕以逗号分隔的值列表的方括号是数组文字。

["this", "is", "a", "swift", "literal", "array"]

对于文字字典,您需要以逗号分隔的key:value对列表:

[1:"this", 2:"is", 3:"a", 4:"swift", 5:"literal", 6:"dictionary"]

要修复错误,您只需将逗号更改为冒号:

defaultScoreResults.append(["Study Up!":1])

但是,based on your previous question,我将假设一系列<String, Int>词典并不在您寻找的地方附近。

我建议您只想要一个<Int, String>字典:

var defaultScoreResults = Dictionary<Int, String>()
defaultScoreResults[1] = "Study Up!"

答案 1 :(得分:1)

试试这个:

var deaultScoreResults = [Dictionary<String, Int>]()
deaultScoreResults.append(["Study Up!":1])

您也可以这样声明:

var deaultScoreResults = [[String:Int]]()