实现MVC模式

时间:2016-05-31 20:48:09

标签: ios swift model-view-controller

我在使用Swift在iOS中实现MVC模式时遇到问题。根据Apple文档,有一个MVC架构:

MVC pattern

我很好,但正如你所看到的,当模型自身改变时(来自套接字的传入消息,例如)它应该如何通知控制器?

例如,我有一个聊天应用程序,其中包含一个表示消息列表的模型。当模型收到新消息时,它如何通知控制器?是否有传统的方法来做到这一点?

由于

2 个答案:

答案 0 :(得分:3)

您可以通过两种方式实现此模型 - 控制器通信。

  1. 委托模式
  2. 通知(https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/index.html
  3. 有关详细说明,我建议您观看CS 193p MVC讲座。 (https://www.youtube.com/watch?v=Cb8KtEI3ZaY

答案 1 :(得分:2)

层之间的沟通是一个非常有趣的话题,并且不仅仅是一系列方法。

这里a very relevant article from objc.io不仅有一个详尽的沟通方法清单,还分析了它们的优缺点,并提出了一个流程图来帮助您确定哪种方法最好。

Making the Right Choice

在您的情况下,Model是发件人,Controller是收件人。通常,控制器保持模型,因此Controller知道模型,但模型不知道控制器。因此,您将位于图表的下半部分。

请阅读完整的文章。它还有来自Apple框架的示例。这真的很有用。