4

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

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

用户单击按钮来打开和关闭屏幕触发动画的区域。编辑其他文本字段时禁用某些文本字段。当您单击计算时,完成了一堆数学运算,结果动画显示在屏幕上。

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

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

4

4 回答 4

7

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

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

因为让您的视图直接与您的模型对话不是一个好习惯,反之亦然,您viewController充当联络人。视图(按钮、标签)包含 viewController 可以访问的屏幕数据。一旦viewController有权访问这些数据,它就会将该数据发送到模型。如前所述,模型可以是您在viewController. 它会考虑您的应用程序并操作您的 viewController 发送给它的数据。

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.myModel = [[Model alloc] init];
}

并且将您的模型作为实例变量的引用应该放在您viewController.m文件顶部的私有类扩展中。

@interface ViewController ()
@property (nonatomic) Model *myModel;
@end
于 2013-07-30T01:07:37.013 回答
3

与往常一样,设计取决于您。我建议使用您需要的任何模型对象创建一个核心数据模型(这将为您生成类文件)。在 iOS 学习的早期熟悉核心数据是学习最佳实践的好方法。

应该让你开始。这样做还可以让您轻松地保持程序状态,易于维护和扩展。

祝你的 iOS 开发顺利。

于 2013-07-30T00:57:22.147 回答
2

是的,您应该创建一个 NSObject 子类并将计算放入其中。
是的,您的控制器应该创建模型对象,并使用它来协调视图。

术语“模型”只是指您独立于 UI 使用的类的集合。设计不佳的应用程序可能根本没有模型。一个设计良好的应用程序将通过提供合适的模型使其控制器免受业务逻辑的干扰。

一个粗略的指导方针是,让你的模型与其他一切相区别,你的模型永远不应该#import <UIKit/UIKit.h>

于 2013-07-30T01:12:53.447 回答
0

你的数学实际上进入了你的视图控制器。除非您想为各种其他方法重用相同的功能。

您的模型将是您想要存储到 Core Data 或其他一些持久存储的任何内容。

基本上,视图与 UI 对话,模型与数据库对话,其他一切都与控制器对话

于 2013-07-30T00:58:36.477 回答