我正在使用Alamofire进行GET调用以获取一些数据。我添加了完成处理程序,但是该函数在没有任何实际响应之前返回nil。我添加了完成处理程序来解决此问题,但该问题仍然存在。
尝试包括完成处理程序。
typealias completionBlock = ([String]?) -> Void
func getImageURLS(_ completion: @escaping completionBlock) -> [String] {
var urls = [String]()
var i : Int = 0
Alamofire.request("//myurl").responseJSON{response in
let data : JSON = JSON(response.result.value as Any)
switch(response.result) {
case .success(_):
while (i < 50){
urls.append(data["products"][i]["images"][0]["src"].stringValue)
i = i + 1
}
completion(urls)
break
case .failure(_):
print("There is an error")
completion([])
break
}
}
return urls
}
override func viewDidLoad() {
super.viewDidLoad()
getImageURLS({data in
self.URLS = data as! [String]
})
collectionView.delegate = self
collectionView.dataSource = self
}