2

我正在制作一个非常基本的 iOS 聊天应用程序,该应用程序现在有几个不同的 viewControllers,所以我现在不知何故想要始终收听服务器,无论用户使用什么 viewController。

在我在要更新的 viewController 上拥有我的 NSStream 代码之前,但是现在由于我有多个视图,我想确保无论用户使用什么 viewController,服务器都在侦听更新。

我怎样才能做到这一点?我将把列出/写入服务器的方法放在哪里(以便所有视图控制器都可以读取/写入它)?

4

2 回答 2

2

您可以创建一个全局单例来处理您的聊天连接并执行所有读取和写入操作。所有需要能够发送或接收聊天消息的视图控制器都将使用该单例。

有关如何在视图控制器和您的聊天单例之间进行通信,请查看 Apple 的Notification Programming TopicsKey-Value Observing Programming Guide

不要因为AppDelegate这样的事情滥用。仅仅因为它是一个全局可用的单例,并不意味着它应该处理视图控制器之间共享的所有内容。

您的视图不应该对聊天连接一无所知。

于 2013-08-01T06:01:59.990 回答
1

创建一个单例来管理通信。称它为XXChatDataController. 确保没有任何视图控制器创建自己的实例。

如果您有多个视图控制器,您希望查看使用通知(而不是委托)来分发有关正在接收的新聊天数据的信息,因为这将使您的代码更简单并处理您有多个视图控制器观察更新的情况同时(如果您使用子视图控制器说)。

于 2013-08-01T06:05:06.693 回答