0

新年明けましておめでとうございます。

私はチャットアプリケーションに取り組んでいます 私の問題は、別のユーザーにメッセージを送信するときに、別のメッセージを入力しているときに別のメッセージを入力すると、キーパッドがしばらくハングすることです.最初のメッセージが配信されると、キーボードはハングした状態から通常の状態になります入力した文字が表示されます。

キーボードがハングするのを防ぐために何をすべきかを誰でも提案できますか?

ありがとう

4

2 に答える 2

4

メッセージを送信するには、非ブロッキングの非同期関数/メソッドを使用するか、ディスパッチキューまたは操作キューでメッセージを送信する必要があります。

これらのキュータイプは両方とも、Appleの同時実行プログラミングガイドで説明されています。

並行性に関するAppleデベロッパのビデオもご覧いただけます。

于 2013-01-03T07:49:35.057 に答える
1

必ずしも他のユニットが終了するのを待たずに、または他の計算作業を保留することなく、計算作業のユニットを実行したい場合は、NSThreadを使用します。

そうすることが賢明であれば、ほとんどすべての作業をスレッドに入れることができます。

良い例は、Web サーバーなどからデータをダウンロードするスレッドを設定するネットワーク要求です。作業が完了すると、スレッドは「ハンドラー」関数を起動します。ハンドラーは、ダウンロードされたデータを処理します。たとえば、Web サービスからの XML データの解析などです。

この例ではスレッドを使用します。これは、アプリがネットワーク経由でデータをダウンロードして処理している間、アプリケーション全体がロックされないようにするためです。NSThread インスタンスは、この作業単位を独自の小さな「スペース」に配置し、より大きなアプリがユーザーとのやり取りを継続できるようにします。

iOS プラットフォームでスレッドを使用したくない例としては、UI の更新 (UIControl ウィジェットの状態の変更など) があります。すべての UI 更新はメイン スレッドで行われます。UI ウィジェットで独自のスレッドを使用する場合、動作は予測できず、多くの場合、単純に機能しません。

編集:メッセージを送信するには、使用する必要がありますNSThread

于 2013-01-03T07:33:36.257 に答える