TCP 接続に AsyncSocket を使用しています。
私は 1 つの TCP ソケットを持っていますが、2 つの UIViewController がこのソケットを使用しています。
私が知っているように、AsyncSocket を初期化する間、デリゲートは 1 つしかありません。
これら 2 つの UIViewController は両方とも、AsyncSocket からのコールバックを処理する必要があります。
これを達成するための良いアイデアはありますか?
どんなアイデアでも大歓迎です!
2 に答える
0
何かのために複数のデリゲートが必要な場合は、次のいずれかを使用できます。
manager
ソケットのデリゲートとして機能するクラスを用意します。このマネージャー クラスには、デリゲートの配列 (各要素が type である単純な NSArrayid<someCustomDelegate>
) があります。さらにsomeCustomDelegate
、Viewcontroller のそれぞれが実装するプロトコルがあります。AsyncSocket のデリゲート メソッドが呼び出されると、カスタム デリゲートの配列を反復処理して、サブスクライブされた ViewController のそれぞれに通知します。- 番号 1 と同様のパターンを使用できますが、デリゲートの配列の代わりに、カスタム通知を投稿し、各 ViewController がその特定の通知をリッスンするようにします。このアプローチはより簡単で、信頼性も非常に高くなります。
于 2014-03-27T04:24:35.410 に答える