2015-09-27 49 views
0

我使用JSON从url获取数据。当我打印berabereOran的变量时,它会在Xcode控制台上显示1或2秒。但它在8或10秒内显示在uilabel中。我不知道是因为什么。Swift JSON时长

注:在我的其他项目中,我使用的tableView,正因为如此,我添加以下代码:dispatch_async(dispatch_get_main_queue()) { self.tableView.reloadData() } 但是这一次,我不使用的tableView。我应该在这里写什么?

MY码:

let urls = NSURL(string: "http://gigayt.com/mackolik/?code=101") 
let sessions = NSURLSession.sharedSession().dataTaskWithURL(urls!){ 

    data, response, error -> Void in 

    if (error != nil){ print(error) } 

    do { 

     if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary { 

      let evsahibiLogo:String = jsonResult["ev-sahibi-logo"] as! String 
      let deplasmanLogo:String = jsonResult["deplasman-logo"] as! String 

      let berabereOran:String = jsonResult["berabere-oran"] as! String 

      print(berabereOran) //shows in 1-2 seconds 
      self.macsonusifirLabel.text = "(\(berabereOran))" //shows in 8-10 seconds 

     } 


     dispatch_async(dispatch_get_main_queue()) { 

      //self.tableView.reloadData() 

     } 

    } 

    catch { print(error) } 

} 

sessions.resume() 

回答

1

试试这个: -

let urls = NSURL(string: "http://gigayt.com/mackolik/?code=101") 
let sessions = NSURLSession.sharedSession().dataTaskWithURL(urls!){ 

data, response, error -> Void in 

if (error != nil){ print(error) } 

do { 

    dispatch_async(dispatch_get_main_queue()) { 

    if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary { 

     let evsahibiLogo:String = jsonResult["ev-sahibi-logo"] as! String 
     let deplasmanLogo:String = jsonResult["deplasman-logo"] as! String 

     let berabereOran:String = jsonResult["berabere-oran"] as! String 

     print(berabereOran) //shows in 1-2 seconds 
     self.macsonusifirLabel.text = "(\(berabereOran))" //shows in 8-10 seconds 

    } 
    } 


} 

catch { print(error) } 

} 

sessions.resume() 





    } 
+1

感谢感谢感谢! :) –