使用KVO在UITableView中重新加载数据

jma*_*mac 5 iphone key-value-observing uitableview ios

我最近一直在扩大我的视野,并且正在尝试在我的编程中更多地使用KVO.

我的iPhone应用程序中有一个视图控制器,它充当UITableView的数据源和委托.我还有一个单例模型控制器,用于协调使用从Web获取的数据填充我的模型.

在我的视图控制器中,我请求模型的控制器从Web加载新数据.然后,我可以观察单例的"数据集"属性,并在项目添加到集合或从集合中删除时接收KVO通知.

现在,我的表视图中的每个单元格都有一个指示符,指示是否已读取该单元格中的内容(如邮件中的蓝色"未读"点).与邮件一样,当选择一行时,我将显示有关该行的详细信息.在详细视图的viewDidLoad中,我将对象的"read"属性设置为YES.我希望原始视图控制器能够观察数据集中每个对象的这个"读取"属性,以便可以根据需要自动调用[tableView reloadData]并重新绘制没有蓝点的单元格.

在研究这个时,我发现了以下链接:http://homepage.mac.com/mmalc/CocoaExamples/controllers.html#observingACollection

根据这一点,看起来我会做以下事情:
1)成为数组的观察者
2)每当我收到数组更改的通知时,我添加(或删除)自己作为单个属性的观察者我我很感兴趣
.3)当我收到我感兴趣的属性更改通知时,我可以调用[tableView reloadData]

我目前正在尝试实施这种方法.任何有这方面经验的人都可以就这种方法提出一些建议吗?如果这是处理这类情况的最佳方法?

如果这是正确的方法,那么当集合发生变化时,是否有人愿意分享他们在集合中添加/删除对象的观察者的实现?

谢谢!

qua*_*rac 3

我认为您可以通过使用核心数据和获取结果控制器来完成此任务。我确信这可以为您节省大量工作。这是一个很好的指南:Ray Wenderlich 核心数据教程,入门