2016-12-05 58 views
0

UITableView的數據源來自外部服務器。任何人都可以隨時更新/刪除/添加數據。如何製作UITableView併發?

的問題是UITableView喜歡抱怨,每當數據並不一致:

The number of rows contained in an existing section after the update (X) must be equal to the number of rows contained in that section before the update (Y), plus or minus the number of rows inserted or deleted from that section and plus or minus the number

如何創建一個UITableView,讓我刪除,添加,更新和刷新,而不必是一致的?

我用斯威夫特3.

+0

每當你得到你需要確保你告訴更新數據源的實現代碼如下外部服務器的數據;如果插入了一行,那麼你需要調用'insertRowsAtIndexPaths'等等,或者你可以調用'reloadData'來刷新整個表。不允許您的數據源和表不同步。 – Paulw11

回答

1

「如何創建一個UITableView,讓我刪除,添加,更新和刷新,而不必是一致的?」

你不知道。表格視圖中顯示的模型數據必須與表格視圖本身匹配。如果從表格視圖中刪除單元格,則必須刪除模型中的這些條目,以便當表格視圖向數據源詢問行/節的信息時,它們匹配。

你應該緩存在本地服務器的數據,並用它來填充表視圖。如果用戶對本地副本進行了更改,則應該使用更改批量更新服務器。

同樣,如果服務器更新,你應該批量更新本地副本中的數據,然後告訴表視圖重新加載它的內容。

很難給出一個明確的答案沒有的你試圖做更具體的描述。