2013-08-29 16 views
1

我试着让我的头脑了解iOS的MVC,并且我想确定我在做什么是合适的。了解iOS中的MVC设计

比方说,我有一个简单的类,它包含的NSString的一个NSMutableArray *

@interface SimpleClass : NSObject 

@property (nonatomic, strong) NSMutableArray *names; 

@end 

,所以这是我的模型。是?

比方说,我想写一个按字母顺序排列这些名字的方法。该方法应该是模型中的一种方法,还是单独在数据控制器类中完成?对我来说,在模型中使用这种方法会更有意义。那么模型会进行实际的排序,而控制器是排序初始化的地方?

这听起来没错吗?

但是,由于对数据进行排序是视图要求显示的内容,这是模型的真正基本行为吗?

+0

视图显示'排序的数据',排序的过程是'控制器' – preetam

+0

很酷。谢谢。 如果我们有一个三维物体,比如一个立方体,那么呢? 然后,如果我们翻译或旋转了一定数量的立方体 - 我们会在模型中做到这一点,因为模型数据本身正在改变? – user2477533

+0

或者我们在控制器中操纵模型吗? – user2477533

回答

0

如果我们想在iOS的应用MVC,我们有专门2部分在这里模型和viewContoller视图和控制器在iOS版结合,如果你想你可以创建单独的视图和控制器。

现在在您的问题中,您将创建一个类与NSMutable数组,这将是你的模型类。

现在你说你想对你的数据进行排序,你可以在viewContoller上这样做,这里的iOS 视图和控制器是结合在一起的,所以你可以对控制器部分的数据进行操作并在视图上显示结果。

但是,如果你想为显示操作创建单独的视图,你可以创建UIView并添加到视图控制器。

如果创建的应用程序,具有处理Web服务比你可以做这样的事情

  1. 创建模型类像你这样做了set和get(财产)的数据表格服务器
  2. 箱DAO像(数据访问对象),管理所有Web服务调用并从服务器获取数据并将其设置为模型。

  3. 在的viewController

    (UIView的控制器)上的数据,显示在操作视图 或3板条箱spepate视图用于显示的数据做模型数据中的所有操作在视图控制器和设定的模型数据来查看和添加该视图的viewController。

希望这是帮助你更多细节请参阅本链接 https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html

http://blog.teamtreehouse.com/ios-design-patterns-model-view-controller-part-3 这可能会帮助你。

0

让我澄清一个

问题你所有的疑虑之一:比方说,我有一个简单的类,它包含的NSString的一个NSMutableArray *

,所以这是我的模型。是?

:是的,它是模型类,因为它在世界上是“处理数据”

问题是服务只有一个目的:让我们说我想写这整理这些方法按字母顺序排列。该方法应该是模型中的一种方法,还是单独在数据控制器类中完成?对我来说,在模型中使用这种方法会更有意义。那么模型会进行实际的排序,而控制器是排序初始化的地方?

:此方法应该是考虑到,因为它是根据你的需求只是对数据进行排序,有一天在未来,你可能需要这个数据在其他一些方式来分类。或者您可能还需要为其他设备开发此应用程序。并且由于其他一些要求,您可能需要以其他方式对其进行排序。如果您将在模型类或控制器类中执行此操作,那么您将限制您的代码的可伸缩性,因此它应该位于视图类中。

而控制器将实施所有业务逻辑。

我希望这有助于