2016-10-11 94 views
0

我讀過很多解決方案,他們沒有幫助我tableView.reloadData不更新UI

我有添加到我的viewcontroller的表視圖。我把它作爲控制器的出口。

@IBOutlet weak var tableView: UITableView! 

在viewDidLoad中我加入

tableView.dataSource = self 
tableView.delegate = self 

我有方法表的數據更新:

當我拉來刷新被執行
private func updateModel() { 
    guard let chatUid = UsersManager.sharedInstance.currentChatUID() else { return } 

    RealtedUserApi().getRelatedUser("\(chatUid)", successHandler: { (relatedUsers) in 

     dispatch_async(dispatch_get_main_queue()) { 
      self.relatedUsers = relatedUsers 
      self.tableView.reloadData() 
     } 
    }) { (error) in 
     print(error) 
    } 
} 

,但UI ISN」 t更新

我把breakepoint放在我的表格單元格中,並且有來自服務器的數據(例如用戶的狀態)但用戶界面不 - 用戶在視圖中的狀態保持不變在單元格的標籤

有沒有人有任何想法如何解決這個問題?

p.s. relatedUsers是對象RelatedUser的數組。它是我的tableView的源代碼。 RelatedUser有狀態屬性,它在服務器上改變,我需要在細胞更新相應的標籤文本

+0

您的chatUid可能爲空或您的相關用戶爲空。您可以嘗試將打印(relatedUsers)發送到您的調度異步,以檢查是否有顯示內容 –

+0

relatedUser不爲零。我看到了行。當它在服務器上發生更改時,我需要更新單元格中的相應標籤文本,並且更新了relatedUsers,但UI不是 – Ilya

+0

「numberOfRows」方法返回什麼? – Santosh

回答

0

的問題是太傻了,所以這是可恥的是我:

我評論的代碼中的一些部分在dequeueReusableCellWithIdentifier塊,其中也是return cell,並忘記了這一點。 但在cellForRowAtIndexPath結束時我會返回UITableViewCell()

通常在這種情況下,應用程序崩潰,但在我的情況下,它沒有。所以我可以看到來自服務器的數據的行,但更新不起作用。