我在使用Swift开发iOS应用时遇到了实现MVC模式的问题。根据苹果官方文档,MVC模式包含以下几个部分: 我对此没问题,但是正如您所看到的,当模型自身发生变化(例如来自套接字的传入消息)时,它应该如何通知控制器?例如,我有一个聊天应用程序,其中模型表示消息列表。当模型接收到新消息时,它如何通知控制器?是否有一种常规方法来实现这一点?谢谢
你可以通过两种方式实现模型-控制器之间的通信。 委托模式 通知 (https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/index.html) 如果您想了解详细说明,我建议您观看CS 193p MVC讲座。(https://www.youtube.com/watch?v=Cb8KtEI3ZaY)
层间通信是一个非常有趣的话题,不仅仅需要列出方法清单。以下是一篇来自 objc.io 的相关文章,不仅详尽列出了通信方法,还分析了它们的优劣,并提供了一个流程图以帮助您决定哪种方法最佳。 在您的情况下,模型是发送方,控制器是接收方。通常,控制器持有模型,因此控制器知道模型,但模型不知道控制器。因此,您将处于图表的较低部分。请阅读完整的文章。它还包括来自苹果框架的示例。非常有用。