从Swift中的嵌套数组读取的正确语法?

时间:2016-12-31 21:33:14

标签: ios arrays swift nested

基本上我试图从数组中获取整数 - >字典 - >数组 - >诠释。我所产生的没有控制台错误并编译得很好,但总是返回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>

1 个答案:

答案 0 :(得分:0)

你的语法对我来说没什么问题,虽然我建议让内部数组包含Int而不是Any,如果它总是包含整数。这样你就可以将最终的强制转换为Int类型。

如果你的任何一个条件转换失败,那么你将获得nil,而nil合并运算符会将你的nil转换为0.我建议编写调试代码,记录传递给你的init方法的对象,然后再转换一次一件事,并逐步看看它失败的地方。

(正如马特在评论中所说,如果第一个条件演员失败,你的dfa变量将为零。)