为什么XCode前缀控制器与xxxViewController而不是xxxController?

时间:2012-01-28 13:12:38

标签: iphone ios xcode

我不明白:在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。

enter image description here

2 个答案:

答案 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角色,制作一个对象   例如,履行控制器和视图角色 - 在这种情况下,它   将被称为视图控制器。以同样的方式,你也可以拥有   模型控制器对象。对于某些应用程序,组合角色如   这是一个可以接受的设计。