KVO和MVC问题

时间:2011-07-03 00:05:24

标签: objective-c

这里的简单问题......在MVC设计方面,从视图中观察模型中的值(使用键值观察)是否正常,并根据模型的变量更新视图在屏幕上的当前位置变化?

是否可以从视图对象中观察并在模型对象内部的Location变量发生变化时让该对象自行移动?

或者这是针对MVC的,因为视图和模型在某种意义上是通信的?

1 个答案:

答案 0 :(得分:1)

您应该将其绑定到C,控制器项目。即使这意味着您从模型中提取状态数据,然后让控制器设置视图或视图从Controller读取该数据。

视图和模型应始终由控制器分隔。据Apple称,这是MVC。原因是即使现在你可以直接让视图引用模型的状态 - 但是模型可能会在将来发生变化,然后你就会陷入更新视图的困境,当时视图真的没有理由受到影响。模型永远不应该更新视图的位置 - 它应该不知道任何显示细节。这是控制器的工作,控制您的视图并根据模型数据移动它们。

以这种方式思考:视图应该只知道如何显示内容或与用户I / O交互,模型应该只知道业务逻辑与通过输入和输出接口进入的数据。您应该能够在没有现有视图的情况下运行模型,而应该能够只提供单元测试类型代码来提供这些输入和输出。因此,移动视图这样的事情完全脱离了模型的责任。