objective-c - 与 Objective C 中的 MVC 混淆

标签 objective-c model-view-controller

我有一个几乎为 iPad 开发的小型老虎机游戏,因为这是我第一次与 Apple 技术进行交互,所以我在开发时从未真正正确地设计过这个应用程序,我想将此代码塑造成 Apple 所倡导的内容,模型- View - Controller 风格。我读了很多相关内容,但仍然很困惑。 这就是我所拥有的:

  1. ViewController 类创建者 默认
  2. 一些控制方法 动画
  3. 纺织品的一些数据和一些 访问它们的方法
  4. 计算支出的方法和 中奖金额

那么我现在应该怎么做才能将其转换为 MVC,我的方法应该如何? 还告诉我有什么好的书籍或在线文档吗

提前致谢!!

最佳答案

模型应该代表你的游戏在任何时候的状态,但不是在视觉意义上。将其视为游戏逻辑。因此它会具有当前分数、老虎机卷轴的当前状态等。该模型还将负责“旋转卷轴”

View 是该模型的视觉表示,您可以以任何您喜欢的方式呈现该信息,3D、2D 等,这没有区别,模型是相同的(这是 MVC 的真正好处)。

您的 Controller (通常是 iOS 中的 Viewcontroller)在模型和 Controller 之间进行中介 - 它应该接受用户的输入并响应模型中的更改,根据需要更新模型和 View 。

进行三向拆分的原因是您只需更改其中一个 MVC 元素即可让应用程序继续运行。您可以更改模型以更好的方式(更随机)旋转卷轴,您可以将 View 从 2D 更改为 3D(或 iPhone 更改为 Mac),并且您可以更改 Controller 中的事件处理(例如添加摇动以触发旋转) )。全部独立。

关于objective-c - 与 Objective C 中的 MVC 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6304326/

相关文章:

ios - 检测滑动删除按钮和在编辑模式下制作的删除按钮之间的区别?

javascript - amCharts 指南中的循环

MVC 5 应用程序中的 CSS 问题

c# - 可为空的日期时间异常

ios - 自定义 UITableViewCell 的背景是有效的,除了第一次接触时以外

ios - 正在使用performSelector :afterDelay: the most efficient way to queue or order methods?

Objective-C 调用参数化 Swift 方法会使 Swift 编译器崩溃

java - 为什么我们需要Struts2中的可准备接口(interface)?

css - table.data 指的是什么?

ios - GCD 与自定义队列