我不明白:在iOS的所有教程中,它显示了一个经典的3部分模型,视图,控制器,那么为什么XCode前缀控制器与xxxViewController而不是xxxController?
这使得相信控制器仅适用于View而不适用于Model,因此接近MVVM而不是经典MVC。
在答案中,它说它不是MVC。
但如果我看看斯坦福大学的课程,它会在Lecture1.pdf @ http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall
中清楚地将iOS开发描述为经典的MVC。
答案 0 :(得分:1)
Xcode不会为所有控制器执行此操作,仅适用于视图控制器(它是UIViewController的子类)。它可以更容易地找到哪些管理视图,您可以创建其他控制器并将它们命名为您喜欢的。
答案 1 :(得分:0)
正如g_wolfman在this Apple discussion thread中的评论:
尽管Apple在开发者文档中使用了MVC一词, 他们实际上并没有使用它;他们使用的变体 [表示 - 抽象 - 控制 (PAC)| HTTP://en.wikipedia.org/wiki/Presentation-abstraction-control。
关键区别在于MVC中,视图直接获取信息 从模型和控制器只关注改变 模型。因此,视图可能需要知道如何从中转换数据 模型作为创建视图的一部分。在PAC中,视图和模型是 完全相互隔离;一切都经过了 控制器。这允许以这样的方式编写视图 避免需要任何“业务逻辑”。
编辑 - - 来自apple doc - http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html#//apple_ref/doc/uid/TP40002974-CH6-SW1
组合角色
可以合并一个对象所扮演的MVC角色,制作一个对象 例如,履行控制器和视图角色 - 在这种情况下,它 将被称为视图控制器。以同样的方式,你也可以拥有 模型控制器对象。对于某些应用程序,组合角色如 这是一个可以接受的设计。