使用未解析的标识符 'json' (Swift 3) (Alamofire)

宙斯

我收到错误:使用未解析的标识符“json”

从这一行: if let data = json["data"] ...

这是与错误相关的代码片段

        // check response & if url request is good then display the results
        if let json = response.result.value! as? [String: Any] {

            print("json: \(json)")
        }

        if let data = json["data"] as? Dictionary<String, AnyObject> {
            if let weather = data["weather"] as? [Dictionary<String, AnyObject>] {
                if let uv = weather[0]["uvIndex"] as? String {
                    if let uvI = Int(uv) {
                        self.uvIndex = uvI
                        print ("UV INDEX = \(uvI)")
                    }
                }
            }
        }
纳坦吉特

你有一个范围界定问题。json变量只能在if let语句中访问

要解决这个问题,一个简单的解决方案是将其余代码移到第一条if let语句的大括号内

if let json = response.result.value! as? [String: Any] {
    print("json: \(json)")
    if let data = json["data"] as? Dictionary<String, AnyObject> {
        if let weather = data["weather"] as? [Dictionary<String, AnyObject>] {
            if let uv = weather[0]["uvIndex"] as? String {
                if let uvI = Int(uv) {
                    self.uvIndex = uvI
                    print ("UV INDEX = \(uvI)")
                }
            }
        }
    }
}

正如您从代码中看到的,嵌套开始使代码难以阅读。避免嵌套的一种方法是使用guard语句,它将新变量保留在外部作用域中。

guard let json = response.result.value else { return }

// can use the `json` variable here
if let data = json["data"] // etc.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:使用未解析的标识符“ json”

来自分类Dev

Swift:使用未解析的标识符“ json”

来自分类Dev

使用未解析的标识符 'result' swift 3

来自分类Dev

在 swift 3 中使用扩展时使用未解析的标识符

来自分类Dev

在 swift4 中使用未解析的标识符“json”

来自分类Dev

在Swift 3中使用未解析的标识符'println'

来自分类Dev

使用未解析的标识符“ FIRAuth”(Swift 2,Firebase 3.x)

来自分类Dev

Swift Alamofire JSON解析

来自分类Dev

使用Alamofire在Swift 3中进行Json解析

来自分类Dev

尝试使用 Alamofire 在 Swift 3 中解析 JSON

来自分类Dev

Alamofire JSON请求Swift 3

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

解析json时使用未解析的标识符

来自分类Dev

在Swift中使用未解析的标识符'MapTasks'

来自分类Dev

Swift:使用未解析的标识符“ addChild”

来自分类Dev

在Swift中使用未解析的标识符NSSecondCalendarUnit

来自分类Dev

在Swift中使用未解析的标识符'indexPath'

来自分类Dev

在Swift中使用未解析的标识符

来自分类Dev

在 Swift 中使用未解析的标识符“类”

来自分类Dev

使用Swift 3和Alamofire在JSON网址中未显示任何应用程序

来自分类Dev

使用SwiftyJSON的未解析标识符JSON

来自分类Dev

在Swift中使用Alamofire处理JSON响应

来自分类Dev

使用 Swift 3 和 Alamofire 上传文件

来自分类Dev

Alamofire Swift Json

来自分类Dev

如何在 Alamofire 请求 swift 3 中传递 JSON 对象

来自分类Dev

Swift 4 使用 Alamofire 解析 JSON 以获得关键值的痛苦

来自分类Dev

在Swift中使用for循环时使用未解析的标识符

来自分类Dev

Swift OpenGL未解析的标识符kCGImageAlphaPremultipliedLast

Related 相关文章

热门标签

归档