数据加载到数组后,表不会更新条目
问题描述:
我有一个将数据加载到我的表视图的服务。当服务已加载数据我的数据加载到我的模型:数据加载到数组后,表不会更新条目
[self.model.entries removeAllObjects];
[self.model.entries addObjectsFromArray:objects];
现在我想知道,如果这两个呼叫“结合兼容”,使表视图会知道它必须更新它的数据,直接绑定到self.model.entries
。我问这是因为服务完成后,表格不再询问我的委托人的tableviewcells的数量,所以它似乎绑定不踢in。
我想我可以在tableview上调用reloadData
,但这会那么就不再符合“约束哲学”了吧?
请注意,如果模型类不存在,我的模型类会返回一个新的NSMutableArray
。我不清楚这是否是使用绑定的正确方法。
答
对于完全绑定的兼容性,您应该通过NSController进行绑定......在这种情况下,大概是NSArrayController。
通过直接绑定到模型,您打破了MVC模式,不,我不相信NSTableView会直接绑定到模型上。
绑定你的表视图NSArrayController的的arrangedObjects,例如,和使用NSArrayController的方法,如:
-add:
-removeObjects:
-insert:
来管理内容。表视图将自动接受这些更改。
您能否简要解释为什么会打破MVC模式? – Besi 2012-01-31 00:27:51
也许有些轻率,因为你省略了MVC的“C”部分。 ;-)这个想法是模型不应该知道关于UI的任何事情,反之亦然。例如,如果你从一个数组支持数据切换到支持字典,数据库或Web服务,你的UI不应该改变 - 只有控制器中的胶水。该框架试图推动你进入更好的架构,因此需要通过控制器进行绑定。 – 2012-01-31 01:01:09