Alamofire,SwiftyJSON在收到回复后更新UI

时间:2016-04-15 03:21:33

标签: swift alamofire swifty-json

您好我正在编写代码以使用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?任何帮助都非常感激。感谢

0 个答案:

没有答案