2015-09-01 144 views
0

我的self.message.text = (newContentArray[0] as! String)不让我打印到我的标签。我的标签已正确连接,但未加载我的数据。UILabel!没有正确更新

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var city: UITextField! 
    @IBOutlet weak var message: UILabel! 

    @IBAction func buttonPressed(sender: AnyObject) { 

     self.view.endEditing(true) 

     var urlString = "http://www.weather-forecast.com/locations/" + city.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) 
      var contentArray = urlContent!.componentsSeparatedByString("<span class=\"phrase\">") 
      var newContentArray = contentArray[1].componentsSeparatedByString("</span>") 

      self.message.text = (newContentArray[0] as! String) 

     } 
     task.resume() 
    } 
+0

你尝试做就行添加一个断点'self.message.text =(newContentArray [0]字符串!)',看看是否被执行的代码? – LuckyStarr

+0

不,我终于开始工作了。它花了一些时间,但终于通过了。谢谢您的帮助! –

回答

4

你应该在主线程上更新你的UI。响应块内补充一点:

dispatch_async(dispatch_get_main_queue(),{ 
    var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding)  
    var contentArray = urlContent!.componentsSeparatedByString("<span class=\"phrase\">") 
    var newContentArray = contentArray[1].componentsSeparatedByString("</span>") 
    self.message.text = (newContentArray[0] as! String) 
}) 
+0

嘿,我的代码有效。我只是花了一些时间才从服务器上获得它。 –