"Ambiguous use of 'subscript'" 无中生有

"Ambiguous use of 'subscript'" out of nowhere

有很多关于这个错误的问题,但我没有找到任何相关的。

我多次编译 运行 我的项目,一切都很好,然后突然间,Xcode 开始在这一行显示以下错误:

if let userId = jsonresult["user_id"]{...}

我正在使用 SwiftyJSON。

我很困惑,因为这个错误以前没有出现过。我在此 class 中没有更改任何内容,我什至检查了应用程序已启动和 运行ning 的上一个提交,现在错误也在那里。

我尝试清理项目并删除派生数据,但没有任何效果。

这很奇怪,但有时正如您的错误所说,编译器无法很好地推断出发生的错误类型。 SwiftyJSON 具有 optional-getterNon-optional getter 用于访问 JSON 所以在你的情况下你可以使用 optional-getter 及其相应的类型转换,请参见以下代码:

if let userId = jsonresult["user_id"].int {...}

在上面的例子中我使用了 .int optional-getter 因为我假设 "user_id" 是一个数字但是你可以使用其他可用的,例如 boolstring 甚至生产 error

optional-getters in SwiftyJSON 的实现完全是为了避免您必须将 getter 的结果转换为每次都输入您认为最合适的方式,如下所示:

if let userId = jsonresult["user_id"] as! Int {...}

希望对你有所帮助。