您好我正在编写代码以使用Alamofire与服务器api通信,然后使用swiftyJSON解析JSON响应。获得所有结果后,我想相应地更新到UI,但似乎不能
这是我使用swiftyJSON解析的Alamofire请求(在Pokemon.class中)
func downloadPokemonDetails1(completed: DownloadComplete) {
let url = NSURL(string: _pokemonUrl)!
Alamofire.request(.GET, url).responseJSON { response in
// print(response.description)
guard response.result.isSuccess else {
print(response.result.error.debugDescription)
return
}
let json = JSON(response.result.value!)
// print(json.description)
self._name = json["name"].string
self._height = json["height"].string
// print(self._height)
self._type = json["types",0,"name"].string
// print(self._type)
}
我在constanst.swift中的DownloadComplete
typealias DownloadComplete = () -> ()
注意:我可以打印所有值(有效),因此响应正常
但问题是当我在ViewController中调用该函数时。用户界面未更新
以下是我在viewController中调用函数的方法
pokemon.downloadPokemonDetails1 {
print(self.pokemon.type)
self.updateUI()
}
updateUI()func:
func updateUI() {
nameLbl.text = pokemon.name
typeLbl.text = pokemon.type
heightLbl.text = pokemon.height
}
无论如何从服务器接收数据后更新UI?任何帮助都非常感激。感谢