维护UITableView单元格和模型对象数组之间的数据同步
问题描述:
我有一个UITableView,其中每个单元格对应于一个模型对象。这些模型对象的列表保存在管理模型对象的单例对象内的数组中。 UITableViewController子类拥有一个引用这个单例对象的实例变量。模型对象从网上异步更新其内部数据。当相应的模型对象完成重新加载其数据时,更新表格单元格的最佳方法是什么?模型对象应该发出通知吗?表格单元格是否可以使用KVO从模型对象接收更改?还有其他选择吗?这里最好的做法是什么?维护UITableView单元格和模型对象数组之间的数据同步
答
我找到了一个解决方案通过继承的UITableViewCell。每个单元维护一个对应于它所对应的模型对象的引用,并观察该对象的boolean isLoading
属性。当加载状态改变时,单元更新它的数据。换句话说,单元(视图)对象观察模型对象,然后请求数据在模型对象状态改变时呈现。
虽然这是一种可能的方式,但它打破了MVC的范例,并可能导致关于细胞再利用和/或设置和拆除KVO的问题。 – DrMickeyLauer