Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 网络调用后未分配变量_Ios_Swift_Alamofire_Swifty Json - Fatal编程技术网

Ios 网络调用后未分配变量

Ios 网络调用后未分配变量,ios,swift,alamofire,swifty-json,Ios,Swift,Alamofire,Swifty Json,我的变量d正在返回nil var d: Int! Alamofire.request(mapsUrl).responseJSON(completionHandler: { (response) in let jsonObject = JSON(response.result.value) let value = jsonObject["rows"][0]["elements"][0]["distance"]["value"].int var c

我的变量
d
正在返回
nil

var d: Int!

Alamofire.request(mapsUrl).responseJSON(completionHandler: { (response) in
        let jsonObject = JSON(response.result.value)
        let value = jsonObject["rows"][0]["elements"][0]["distance"]["value"].int

        var converted = 0
        if value! <= 5000{
            converted = (value! / 1000) * 80
        }else{
            converted = (value! / 1000) * 65
        }
        if converted < 400{
            converted = 400
        }else if converted == 0{
            converted = 400
        }
        d = converted
    })
print(d)
vard:Int!
请求(mapsUrl).responseJSON(completionHandler:{(响应)在
让jsonObject=JSON(response.result.value)
让value=jsonObject[“行”][0][“元素”][0][“距离”][“值”].int
var=0

如果值!,因为您正在尝试在完成块之外打印(d)
,则该语句将在网络请求完成之前执行。请尝试将其放入完成块内:

Alamofire.request(mapsUrl).responseJSON(completionHandler: { (response) in
    let jsonObject = JSON(response.result.value)
    let value = jsonObject["rows"][0]["elements"][0]["distance"]["value"].int

    var converted = 0
    if value! <= 5000{
        converted = (value! / 1000) * 80
    }else{
        converted = (value! / 1000) * 65
    }
    if converted < 400{
        converted = 400
    }else if converted == 0{
        converted = 400
    }
    d = converted
    print(d)
})
Alamofire.request(mapsUrl.responseJSON)(completionHandler:{(response)in)
让jsonObject=JSON(response.result.value)
让value=jsonObject[“行”][0][“元素”][0][“距离”][“值”].int
var=0

if value!我想在函数see@Martin R的注释中返回
d
。我建议您阅读异步编程。请查看Alamofire自述文件,其中明确说明所有请求都是异步处理的。