0

我正在使用 AsyncSocket 进行 TCP 连接。
我有一个 TCP 套接字,但我有两个 UIViewControllers 使用这个套接字。
据我所知,在我初始化 AsyncSocket 时只有一个委托。
这两个 UIViewController 都需要处理来自 AsyncSocket 的回调。
有什么好主意来实现这一目标吗?
任何想法表示赞赏!

4

2 回答 2

0

当您需要有多个代表时,您可以使用任何这些:

  1. 有一些manager类充当 Socket 的代表。这个管理器类将有一个委托数组(一个简单的 NSArray,其中每个元素的类型都是id<someCustomDelegate>)。此外,您还有一个someCustomDelegate每个 Viewcontroller 都实现的协议。当调用 AsyncSocket 的委托方法时,您将遍历自定义委托数组以通知每个订阅的 ViewController。
  2. 您可以使用与数字 1 类似的模式,但您只需发布自定义通知,而不是委托数组,并让每个 ViewController 侦听该特定通知。这种方法会更容易,也非常可靠。
于 2014-03-27T04:24:35.410 回答
0

您可以使用nsnotificationcenter通知两个视图控制器有关来自 AsyncSocket 的回调。您可以在一些应用控制器(您可以为您的应用创建它)/appdelegate 中使用 AsyncSocket 代码。当它触发回调时,您可以发送通知 AsyncSocketNotication(您必须像这样创建命名通知),该通知由正在侦听 AsyncSocketNotication 的各个视图控制器捕获。即使您想通知许多视图控制器,这也很有用。

希望能帮助到你 !

于 2014-03-27T04:32:18.117 回答