小编bom*_*dit的帖子

在Swift闭包内更新的UILabel文本拒绝显示

在学习Swift时,我正在编写一个简单的练习iOS应用程序来从一个站点抓取给定城市的天气信息并在UILabel中显示它.

该代码使用"NSURLSession.sharedSession().dataTaskWithURL"闭包.虽然我能够正确地获取数据,并捕捉到"UILabel.text"相关的文字,我不能得到实际应用显示更新的UILabel.

我究竟做错了什么?这是相关代码:

@IBAction func buttonPressed(sender: AnyObject) {

   var urlString = "http://www.weather-forecast.com/locations/" + cityName.text.stringByReplacingOccurrencesOfString(" ", withString: "") + "/forecasts/latest"

   var url = NSURL(string: urlString)

   let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in

      var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding) as String

      var contentArray = urlContent.componentsSeparatedByString("<span class=\"phrase\">")
      var weatherInfo = contentArray[1].componentsSeparatedByString("</span>")

      self.resultShow.text = weatherInfo[0] // Text does not show in the app

      println(weatherInfo[0]) // This works correctly
      println(self.resultShow.text) // This works correctly

   }

   task.resume()

}
Run Code Online (Sandbox Code Playgroud)

closures ios swift

2
推荐指数
1
解决办法
3639
查看次数

标签 统计

closures ×1

ios ×1

swift ×1