到目前为止,我已经阅读了几个关于iPhone应用程序开发的MVC设计模式的资源。但是我在iPhone开发环境中有一个与MVC的Model部分相关的问题。
首先,我想说一下我对MVC的看法,
模型:与我们关于应用程序对象的数据有关。示例:应用一个列车模拟器,模拟的每个列车都将拥有自己的属性,并将保存在列车模型中。
控制器:是控制UI更新的东西。它保留了对Train模型的引用并检查模型中的任何变化,如果有更改而不是更改该特定列车的视图。它会不断检查任何UI输入,以便它可以更改Model中的数据。
查看:这是相当明显的视图是关于UIView,我们在屏幕上看到的。
现在,问题是......
模型必须持久才能被视为模型吗?或者我可以 有一个没有任何持久性的变量的类。会是 也被视为模型,或者模型必须存储在某个地方 在CoreData或.Txt文件等....
感谢您的任何意见!
答案 0 :(得分:7)
模型必须持久才能被视为模型吗?
只要您的控制器可以支持它,它就可以变化或变换。
模型必须存储在CoreData或.Txt文件
中
完全没有。
如果适用,您可以使用任何模型。模型只是实际逻辑/数据库/网络访问/ blablabla的另一个抽象...
答案 1 :(得分:3)
不,MVC背后的想法实际上并不涉及数据库,尽管这是常见的。该模型应该捕获所有业务逻辑。如果要构建计算器,则视图是显示和按钮,模型是知道如何添加和减去的代码的一部分,而控制器是连接两者的一部分。没有持久性。
答案 2 :(得分:3)
不,模型不必持久。
理论上,启动项目的一个好方法是使用非持久性模型来简化。然后,当您将模型更改为持久模型时,您不必对视图或控制器进行任何更改,因为您将设计界面而不知道模型的详细信息。
在实践中,如果你计划在你的模型持久化时使用Core Data,那么在iPhone上并不是一个好主意。核心数据要求您以一种不同的方式设计您的类。即使您在更改模型时不必对视图和控制器代码进行许多更改,也必须对模型进行大量的代码更改。如果您知道自己将使用Core Data,那么最好立即开始使用它。