2015-12-02 113 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服務完成後執行的回調。 –

相關問題