Swift访问字典中的值

时间:2016-01-19 20:42:41

标签: ios swift dictionary nested

我有一个快速字典,我正在尝试访问我的数组中的值。

我制作的字典看起来像这样:

["results": {
Democrats =     {
    percent = 67;
    raw = 4;
};
Republicans =     {
    percent = 33;
    raw = 2;
};
"total_answers" = 6;
}, "success": 1]

我制作了另一本词典来获得这个:

let test = dictionary["results"] as! [String : AnyObject] 

["Democrats": {
percent = 67;
raw = 4;
}, "Republicans": {
percent = 33;
raw = 2;
}, "total_answers": 6]

我可以访问以下值:

let testing = test["total_answers"]

我想访问百分比和原始值,例如:

Democrats =     {
percent = 67;
raw = 4;
};

百分比和原始密钥是静态的,但民主党是一个永远不会相同的字符串。

2 个答案:

答案 0 :(得分:1)

我不知道你在字典中使用的符号,但它并没有在Swift中编译。

使用[String:Any]作为类型的字典可以工作,但操纵数据将成为类型转换的噩梦。您应该考虑使用常规结构,其中所有值都具有相同的类型。

例如(使用两个值元组的类型):

typealias Votes = (percent:Int, raw:Int)

var results = [ "Democrats"  : Votes(percent:67,  raw:4),
                "Repubicans" : Votes(percent:33,  raw:2),
                "Totals"     : Votes(percent:100, raw:6)
              ]

let democratVotes = results["Democrats"]!.raw

答案 1 :(得分:0)

所以这里let democrats:[String : Int] = test["Democrats"] as! [String : Int]将为您提供新词典,仅包含

Democrats =     {
percent = 67;
raw = 4;
};