0

私はチャットクライアントに取り組んでいます。新しいメッセージを取得 (または新しいメッセージを投稿) するには、GET (または POST) リクエストを実行する必要があります。すべての新しいメッセージは、コア データを介して保存されます。現時点では、最適な方法で実装する方法がわかりません。

私の考え:

  1. ビュー コントローラの初期化段階で、新しいメッセージを定期的にチェックするバックグラウンド スレッドを作成します (会話がアクティブな場合は短時間で、そうでない場合は約 60 秒で)。新しいメッセージがある場合は、それらを DB に保存し、表示する新しいメッセージがあることをデリゲートに通知します。
  2. 友人はperformSelector afterDelayの使用を提案しましたが、アプリでの使用方法がわかりません。
  3. 他の何か?

前もって感謝します。

4

1 に答える 1

1

使用しないでくださいperformSelector afterDelay。(次のダウンロードを開始するためのトリガーとして)使用するNSTimer方がはるかに優れています。また、NSOperationQueueバックグラウンド タスクの管理にも使用します。NSOperationインスタンス化できるカスタムを自分で作成すると、リクエスト プロセスが完了します。新しいメッセージを確認する新しい操作を作成するときは、その操作が既に進行中であるかどうかを確認します (複数の要求が同時に進行していても意味がありません)。

その他の注意事項:

  1. コア データ ストアに関するスレッド化を必ず検討してください (結果データは常に比較的小さいため、操作をメイン スレッドに呼び出して結果を返すのがおそらく最も簡単です)。
  2. 大量のメッセージが送信されていて、一定のステータスを表示したい場合 (Skype のように、誰かが入力しているときに表示されます)、接続を常に維持するためにソケットを使用する必要があります (毎回の新しい接続のコストは法外である)。
于 2013-08-25T11:15:22.917 に答える