2

私は非常に基本的な iOS チャット アプリケーションを作成しています。アプリにはいくつかの異なる viewController があるため、ユーザーがどの viewController を使用していても、常にサーバーをリッスンしたいと考えています。

以前は更新したいviewControllerにNSStreamコードを持っていましたが、今は複数のビューがあるので、ユーザーがどのviewControllerを使用していてもサーバーが更新をリッスンしていることを確認したい..

これどうやってするの?サーバーにリスト/書き込みするためのメソッドをどこに配置しますか(すべてのviewControllerが読み取り/書き込みできるように)?

4

2 に答える 2

2

チャット接続を処理し、すべての読み取りと書き込みを行うグローバル シングルトンを作成できます。チャット メッセージを送受信できるようにする必要があるすべてのビュー コントローラーは、そのシングルトンを使用します。

ビュー コントローラーとチャット シングルトンの間で通信する方法については、Apple のNotification Programming TopicsKey-Value Observing Programming Guide を参照してください。

そのようなものに を悪用しないでくださいAppDelegate。グローバルに利用可能なシングルトンだからといって、View Controller 間で共有されるすべてのものを処理する必要があるわけではありません。

ビューは、チャット接続について何も認識してはなりません。

于 2013-08-01T06:01:59.990 に答える
1

通信を管理するシングルトンを作成します。のように呼んでくださいXXChatDataController。ビュー コントローラが独自のインスタンスを作成しないようにしてください。

複数のビュー コントローラーがある場合は、(委任の代わりに) 通知を使用して、受信した新しいチャット データに関する情報を配布することを検討します。これにより、コードがよりシンプルになり、更新を監視する複数のビュー コントローラーがある状況を処理できるようになります同時に(子View Controllerを使用していた場合)。

于 2013-08-01T06:05:06.693 に答える