我有一个UITableView,其中每个单元格对应一个模型对象。这些模型对象的列表保存在管理模型对象的单个对象内的数组中。 UITableViewController子类包含一个引用此singleton对象的实例变量。模型对象从Web异步更新其内部数据。当相应的模型对象完成重新加载数据时,更新表格单元格的最佳方法是什么?模型对象是否应发出通知?表格单元格是否可以使用KVO从模型对象接收更改?还有其他选择吗?这里的最佳做法是什么?
答案 0 :(得分:1)
我通过继承UITableViewCell找到了一个解决方案。每个单元格都维护对与其对应的模型对象的引用,并观察此对象的布尔isLoading
属性。当加载状态改变时,单元更新它的数据。换句话说,单元(视图)对象观察模型对象,然后请求数据在模型对象状态更改时呈现。
答案 1 :(得分:0)
我不确定这是最好的解决方案,但在之前的项目中,我正在调用消息reloadRowsAtIndexPaths
:
NSArray* paths = [[NSArray alloc] initWithObjects:indexPath, nil];
[tableView reloadRowsAtIndexPaths:paths withRowAnimation:UITableViewRowAnimationMiddle];