无论ViewController用户在哪里,都可以读/写NSStream

时间:2013-08-01 05:44:17

标签: iphone ios objective-c

我正在制作一个非常基本的iOS聊天应用程序,该应用程序现在有几个不同的viewControllers所以我现在想要总是听服务器,无论用户在哪个viewController上。

在我想要更新的viewController上获得我的NSStream代码之前,然而现在因为我有多个视图,我想确保服务器正在监听更新,无论用户在哪个viewController上。

我该怎么做?我在哪里将我的方法列入/写入服务器(以便所有viewControllers可以读/写)?

2 个答案:

答案 0 :(得分:2)

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

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

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

您的观点不应该对聊天连接有所了解。

答案 1 :(得分:1)

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

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