newbie ios - MVC中的模型在哪里?

ham*_*obi 4 architecture model-view-controller objective-c ios

我正在制作一个进行计算的应用程序.

我有一堆视图和视图控制器.

用户单击按钮以打开和关闭触发动画的屏幕区域.编辑其他文本字段时禁用某些文本字段.当你点击计算完成一堆数学时,结果会动画到屏幕上.

  1. 视图..是我们用xib文件或故事板做的所有事情
  2. 控制器是..我们在制作ios应用程序时开始的视图控制器..我们引用插座和动作

3 .. 模特是??? 我假设我执行的数学应该进入模型..任何不直接影响视图的计算内容.但到底哪里是模特?!我只是创建一个通用对象并在控制器内实例化它?在我看过的所有教程中......我只看到人们使用视图控制器和相关视图.

Bri*_*acy 7

这个模型并不像你提到的其他东西那样标准化.在Xcode中构建单个视图应用程序时,它带有一个viewController和一个appDelegate.正如您所注意到的,模型缺失了.

那是因为你建立了自己的模型.模型通常是您在视图控制器中实例化的对象,然后通过其方法操作数据.模型将是一个.h.m文件,您可以创建一个对象,通过其方法操作来自用户输入的数据.

因为让你的观点直接与你的模型交谈是不好的做法,反之亦然,你的viewController行为就像一个联络人.视图(按钮,标签)包含viewController可以访问的屏幕数据.一旦viewController有权访问此数据,它就会将该数据发送给模型.如前所述,模型可以是您在实例中实例化的对象viewController.它会考虑您的应用并操纵您的viewController发送它的数据.

实例化模型的好地方是viewDidLoad方法.这可确保您的应用程序准备就绪时,您的模型也将如此.

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.myModel = [[Model alloc] init];
}
Run Code Online (Sandbox Code Playgroud)

而作为一个实例变量的参考模型应放在你的私人类扩展你的顶部viewController.m文件.

@interface ViewController ()
@property (nonatomic) Model *myModel;
@end
Run Code Online (Sandbox Code Playgroud)