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自述文件,其中明确说明所有请求都是异步处理的。