【发布时间】:2016-12-31 21:33:14
【问题描述】:
本质上,我试图从 Array -> Dictionary -> Array -> Int 中获取整数。我所拥有的没有产生控制台错误并且编译正常,但总是返回 0。我认为我的语法错误,但我不确定重写它的正确方法。
convenience init(fromDict dict: [String: Any]) {
let dfa = dict["forms"] as? Array<Dictionary<String,Array<Any>>>
self.init(
heart: dfa?[0]["abilities"]?[0] as? Int ?? 0
)
}
<array>
<dict>
<key>forms</key>
<array>
<dict>
<key>abilities</key>
</array>
<integer>65</integer>
</array>
【问题讨论】:
-
首先要看
dfa本身是不是nil。是吗? -
当我删除
?s 时,dfa 给了我断点错误。它不应该,因为我可以在数据源中看到变量 -
您可以看到该变量,但它可能没有
["forms"]条目,如果有,则该条目的值可能不是Array<Dictionary<String,Array<Any>>>。你有看到?不过,您还没有向我们展示dict的组成部分。你把一切都保密,所以没有人可以帮助你。这就是为什么我要指导你自己思考这个问题。 -
是的,我使用
let dfs = dict["forms"] as? Array<Dictionary<String,Dictionary<String,Any>>>从["forms"]的字典中获取值。["forms"]中有一个数组,我似乎无法从中提取此数据 -
如果它应该是一个 plist 或任何类型的 xml,它完全是格式错误的。