【发布时间】:2016-10-26 10:38:54
【问题描述】:
我无法从 URL 保存数据,因为函数在无限循环中。怎么修? 我的代码:
func getRegion2(){
let method = "region/"
var url = serviceUrl+method
var myArray: [String]()
while(url != nil){
Alamofire.request(url).validate().responseJSON { response in
switch response.result {
case .success(let data):
let nextUrl = JSON(data)["next"].stringValue
url = nextUrl
myArray = myArray + myArray
print(nextUrl)
case .failure(let error):
print("Request failed with error: \(error)")
}
}
}
print(myArray)
}
如果在没有“while”的情况下运行,那么一切正常。
【问题讨论】:
-
你为什么使用 while ?你的目的是什么?
-
块是异步的。所以,你必须检查
myArray = myArray + myArray这一行。在此行之后打印。 -
@emresancaktar 我使用“while”,因为我不知道执行 Alamofire.request(url) 需要多少时间。第一步:从默认 url 下载数据。从数据中保存数组并检查 nextUrl。第二步:如果 nextUrl 不是 nil 则从 nextUrl 下载数据并添加数组等。
-
搜索“异步”。
标签: ios swift swift3 alamofire