维护UITableView单元格与模型对象数组之间的数据同步

时间:2011-09-24 02:00:36

标签: iphone objective-c cocoa-touch

我有一个UITableView,其中每个单元格对应一个模型对象。这些模型对象的列表保存在管理模型对象的单个对象内的数组中。 UITableViewController子类包含一个引用此singleton对象的实例变量。模型对象从Web异步更新其内部数据。当相应的模型对象完成重新加载数据时,更新表格单元格的最佳方法是什么?模型对象是否应发出通知?表格单元格是否可以使用KVO从模型对象接收更改?还有其他选择吗?这里的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

我通过继承UITableViewCell找到了一个解决方案。每个单元格都维护对与其对应的模型对象的引用,并观察此对象的布尔isLoading属性。当加载状态改变时,单元更新它的数据。换句话说,单元(视图)对象观察模型对象,然后请求数据在模型对象状态更改时呈现。

答案 1 :(得分:0)

我不确定这是最好的解决方案,但在之前的项目中,我正在调用消息reloadRowsAtIndexPaths

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