2015-12-02 114 views
0

我想要的是从服务中获取一些数据,并试图将其显示到表视图中,一切工作正常,但数据不是在第一次显示。Tableview不重新加载数据

override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     if NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") != nil{ 


      arr = NSUserDefaults.standardUserDefaults().objectForKey("PostedQuesIds") as? NSArray 

     } 
     else{ 

      print("I am getting no IDS !!!") 
     } 

     if self.arr != nil{ 

      for quesIds in self.arr!{ 

       print("ids '\(quesIds)'") 

       var url = "http://some.com/forum" 
       url.appendContentsOf(quesIds as! String) 
       WebHandler.sharedInstance.GET_REQ(url) 

       self.dataArray = WebHandler.sharedInstance.questionDetails?.objectForKey(quesIds) as? NSMutableArray 


      } 
     } 

我试图

//NO LUCK WITH THE FOLLWING CODE, IT IS RUNNING AS EXPECTED BUT DATA IS NOT //SHOWN 
//  dispatch_async(dispatch_get_main_queue(), {() -> Void in 
//    
//    
//   
//   print("I am called wtf?") 
//   self.tableView.reloadData() 
//    
//  }) 

后来我想通过NSNotification这样做的;我所做的:

override func viewWillAppear(animated: Bool) { 

    nc.addObserver(self, selector: "reload", name: "reloadTable", object: nil) 
} 

func reload(){ 
//tried in main queue and out 
    dispatch_async(dispatch_get_main_queue(), {() -> Void in 
     print("I am called wtf?") 
     self.tableView.reloadData() 
    }) 

} 

现在我不知道什么是错在它FYI我从webhandler类每次发布nsnotification和它工作在我的日志我得到的消息。请帮助我在这方面的任何帮助将不胜感激。

+0

'dataArray'实际上是否包含任何数据? – Lamar

+0

你可以显示代码如何在UITableViewDataSource方法中分配数据吗? –

+0

是的,它包含我有完整的日志@Lamar –

回答

0

我看到了两个可能的问题:

  1. WebHandler.sharedInstance.GET_REQ()方法可以是异步的。如果我的猜测是正确的,self.tableView.reloadData()正在您的Web服务完成获取您的数据并将其指定为self.dataArray之前被调用。在致电reloadData()之前,您可能需要等待它完成。
  2. 不知道为什么你有一个for循环内以下行:

    self.dataArray = WebHandler.sharedInstance.questionDetails?.objectForKey(quesIds) as? NSMutableArray 
    

    你确定你不想追加到dataArray

+0

我如何等待,如果它是aysnc?以及它在循环中的原因,我必须得到我阵列中存在的所有ID的数据。 –

+0

您可以添加在Web服务完成后执行的回调。 –

相关问题