iPhone 开发环境中的 MVC

Posted

技术标签:

【中文标题】iPhone 开发环境中的 MVC【英文标题】:MVC in iPhone development context 【发布时间】:2011-12-12 05:31:25 【问题描述】:

到目前为止,我已经阅读了一些关于 iPhone 应用程序开发的 MVC 设计模式的资源。但是,在 iPhone 开发环境中,我有一个与 MVC 模型部分相关的问题。

首先,我想说一下我对 MVC 的看法,

模型: 与我们拥有的关于应用程序对象的数据相关。示例:火车模拟器的应用比,每辆模拟火车都有自己的属性,并将保存在火车模型中。

Controller : 是控制 UI 更新的东西。它保留对训练模型的引用并检查模型中的任何更改,如果有则更改该特定列车的视图。它会不断检查任何 UI 输入,以便更改模型内部的数据。

View :这很明显 View 是关于 UIView 的,我们在屏幕上看到的。

现在,问题是……

模型是否必须具有持久性才能被视为模型?或者我可以 有一个没有任何持久性的变量的类。会是 也被视为模型,或者模型必须存储在类似的地方 在 CoreData 或 .Txt 文件等中......

感谢您的任何意见!

【问题讨论】:

【参考方案1】:

模型是否必须具有持久性才能被视为模型?

只要您的控制器能够支持它,它可能会发生变化或变化。

模型必须存储在某个地方,例如 CoreData 或 .Txt 文件中

一点也不。

如果适用,您可以使用任何模型。模型只是您的实际逻辑/数据库/网络访问/blablabla 的另一个抽象......

【讨论】:

【参考方案2】:

不,MVC 背后的想法实际上与数据库无关,尽管这很常见。该模型应该简单地捕获所有业务逻辑。如果你正在构建一个计算器,视图是显示器和按钮,模型是知道如何加减的代码部分,控制器是连接两者的部分。不涉及持久性。

【讨论】:

【参考方案3】:

不,模型不必是持久的。

理论上,为了简单起见,开始您的项目的一个好方法是使用非持久模型。然后,当您将模型更改为持久化时,您不必对视图或控制器进行任何更改,因为您将设计接口以不了解模型的细节。

实际上,如果您打算在模型持久化时将 Core Data 用于模型,那么这在 iPhone 上并不是一个好主意。 Core Data 要求你以不同的方式设计你的类。即使您在更改模型时不必对视图和控制器代码进行很多更改,您也必须对模型进行大量代码更改。如果您知道您将使用 Core Data,最好从它开始。

【讨论】:

以上是关于iPhone 开发环境中的 MVC的主要内容,如果未能解决你的问题,请参考以下文章

团队环境中的 iPhone ad hoc 分发

iphone的开发环境?

使用 .NET 开发环境的 iPhone 应用程序?

在MyEclipse中搭建Spring MVC开发环境

MVC 永久使用重定向 HTTP 到 HTTPS 并关闭开发环境的方法

在越狱的iPhone/iPad上安装自开发环境