我一直认为我理解MVC,但是最近,在阅读了很多关于这个主题的Stack Overflow帖子之后,我发现MVC框架的工作方式彼此略有不同.更具体地说,在视图和模型交互的方式中,似乎有两种思想流派:
当用户与视图交互时,视图通知控制器,控制器依次对模型执行某些操作.当模型更改时,模型会通知控制器,控制器会更新视图.
视图订阅模型.当模型更改时,视图似乎会直接通知它需要自行更新.

所以我的问题是:在Cocoa Touch(iOS)中,做MVC的最佳方法是什么?我这些天主要编写iOS编码,并且只对这个平台的最佳实践感兴趣.(我对ASP.NET,Rails,Backbone等的工作方式不感兴趣.)
如果可以提供一些KVO示例代码,那将是非常好的.谢谢.=)
iphone model-view-controller objective-c key-value-observing ios
MVC的主要原则之一是视图永远不应该拥有数据.这个原则在WWDC Session 116中重复多次.但是为什么UIImageView(一个视图)拥有UIImage(一个模型)?它不违反上述原则吗?
或者我在这里误解了什么?也许只是因为UIImageView有一个image特性,并不意味着它拥有的是UIImage?