2011-09-24 20 views
1

我有一個UITableView,其中每個單元格對應於一個模型對象。這些模型對象的列表保存在管理模型對象的單例對象內的數組中。 UITableViewController子類擁有一個引用這個單例對象的實例變量。模型對象從網上異步更新其內部數據。當相應的模型對象完成重新加載其數據時,更新表格單元格的最佳方法是什麼?模型對象應該發出通知嗎?表格單元格是否可以使用KVO從模型對象接收更改?還有其他選擇嗎?這裏最好的做法是什麼?維護UITableView單元格和模型對象數組之間的數據同步

回答

1

我找到了一個解決方案通過繼承的UITableViewCell。每個單元維護一個對應於它所對應的模型對象的引用,並觀察該對象的boolean isLoading屬性。當加載狀態改變時,單元更新它的數據。換句話說,單元(視圖)對象觀察模型對象,然後請求數據在模型對象狀態改變時呈現。

+0

雖然這是一種可能的方式,但它打破了MVC的範例,並可能導致關於細胞再利用和/或設置和拆除KVO的問題。 – DrMickeyLauer

0

我不知道這是最好的解決方案,但在以前的項目我打電話的消息reloadRowsAtIndexPaths

NSArray* paths = [[NSArray alloc] initWithObjects:indexPath, nil];  
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle]; 
+0

謝謝,但我試圖設置某種通知機制,而不是每次狀態更改時直接調用任何方法。 – Sean

+0

那麼我會像你一樣等待更好的答案:D – 3on

相關問題