首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode是否默认强制使用MVC设计模式?

Xcode是否默认强制使用MVC设计模式?
EN

Stack Overflow用户
提问于 2013-05-15 21:55:31
回答 3查看 1.1K关注 0票数 0

我是iOs开发的新手,希望遵循正确的设计模式,但看起来Xcode默认情况下会强制用户使用MVC设计模式。

我有一个模型(MyApp.h),你有一个视图(我可以在其中拖放组件),我有一个控制器(MyApp.m)。

这是正确的思维方式吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-15 22:23:05

我将使用一个非常基本的示例。

您想要显示一个人员列表,包括他们的姓名、年龄和位置,如下所示:

代码语言:javascript
复制
Bob    32    United States
Paul   22    England
Jack   24    France
...

在这里,您将创建一个继承自NSObject的新类,并将其命名为Person。您的类将由一个头文件(.h)和实现文件(.m)组成。它将具有属性,以保存“真实”人员的不同元素,以及访问和/或处理这些元素的方法(获取名称、增加年龄、更改位置)。这是您的模型

然后,您将使用名为CustomTableViewControllerUITableViewController子类来表示数据。这是您的控制器

视图实际上是UITableViewController中包含的tableView

MVC模式背后的基本原理是,CustomTableViewController负责tableViewPerson对象之间的通信。这发生在您的文件CustomTableViewController.mtableViewController实现中。

您的tableViewController将(例如)创建一个Person对象数组,从某个地方获取所有数据,创建Person,将它们存储到数组中,等等。

然后,UITableViewController(当然还有它们的子类)实现一个名为cellForRowAtIndexPath:的委托方法,tableView在需要显示单元格时会调用该方法。tableViewController创建一个cell,用数据填充它,并将该单元格传递给tableView。这就是你处理通信的方式。您不需要直接向tableView请求获取数据。

这也是反向工作的。如果您的tableView允许编辑,它将通知tableViewController用户交互,后者的角色是反映您的模型上的修改。

票数 4
EN

Stack Overflow用户

发布于 2013-05-15 21:59:25

不完全是。如果能从苹果的文档中了解到这一点,那就更好了:

从:this开始,然后您可以更深入地了解here

票数 1
EN

Stack Overflow用户

发布于 2013-05-15 22:45:24

Xcode不会“强制MVC”。这是最佳实践,Apple使其易于实现,但MVC中的一个关键概念是模型对象与视图和视图控制器对象的分离,但这种适当的分离完全是通过程序员纪律实现的,而不是通过工具。

无论如何,我建议你参考可可核心竞争力指南中关于Model-View-Controller的苹果入门读物。那个页面上有很多很好的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16567017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档