为啥 Alamofire 会提前回来?

Posted

技术标签:

【中文标题】为啥 Alamofire 会提前回来?【英文标题】:Why the Alamofire return early?为什么 Alamofire 会提前回来? 【发布时间】:2016-03-01 05:29:52 【问题描述】:
 Alamofire.request(.GET, gaode, parameters: ["location": location,"key":key])
        .responseJSON  response in
            guard response.response?.statusCode == 200 else
                return
            
            js = JSON(response.result.value!)
            guard js["infocode"].string! == "10000" else
            
                return
            
            print("JSON: \(js)")
            guard js["regeocode"]["formatted_address"].string != nil else
                return
            
            print(js["regeocode"]["formatted_address"].string)
    
    return js["regeocode"]["formatted_address"].string!

代码在得到响应之前执行return js["regeocode"]["formatted_address"].string!。 为什么?我想在返回之前获取 JSON。 如何解决这个问题?

【问题讨论】:

因为是异步请求。 【参考方案1】:

返回在响应块之外,因此它与您的网络请求完全分开返回。

【讨论】:

以上是关于为啥 Alamofire 会提前回来?的主要内容,如果未能解决你的问题,请参考以下文章

由于对成员 jsonObject 的不明确引用,我无法编译我的 alamofire 代码。为啥?

错误:导入 Alamofire

在 Alamofire 4.0 中初始化 SessionManager

安装库 Alamofire 可能出现错误

强制 Alamofire 在主线程上做所有事情?

Alamofire 请求大约需要 10 秒