【问题标题】:"Ambiguous use of 'subscript'" out of nowhere [duplicate]“不明确地使用'下标'” [重复]
【发布时间】:2016-02-17 19:48:25
【问题描述】:

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

我多次编译和运行我的项目,一切都很好,然后突然,完全不知从何而来,Xcode 开始在这一行显示以下错误:

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

我正在使用 SwiftyJSON。

我很困惑,因为这个错误以前没有出现过。我在这个类中没有改变任何东西,我什至检查了应用程序启动并运行的上一个提交,现在错误也在那里。

我尝试清理项目并删除派生数据,但它什么也没做。

【问题讨论】:

  • 您收到的错误信息是什么?
  • 下标使用不明确

标签: ios swift swifty-json


【解决方案1】:

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

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

在上述情况下,我使用了.int optional-getter,因为我假设"user_id" 是一个数字,但您可以使用其他可用的数字,例如boolstring 甚至得到error 生成。

SwiftyJSON 中的 optional-getters 完全是为了避免您每次都必须将 getter 的结果转换为您认为最合适的类型,如下所示:

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

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多