基本上我试图从数组中获取整数 - >字典 - >数组 - >诠释。我所产生的没有控制台错误并编译得很好,但总是返回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>
答案 0 :(得分:0)
你的语法对我来说没什么问题,虽然我建议让内部数组包含Int
而不是Any
,如果它总是包含整数。这样你就可以将最终的强制转换为Int类型。
如果你的任何一个条件转换失败,那么你将获得nil,而nil合并运算符会将你的nil转换为0.我建议编写调试代码,记录传递给你的init方法的对象,然后再转换一次一件事,并逐步看看它失败的地方。
(正如马特在评论中所说,如果第一个条件演员失败,你的dfa
变量将为零。)