0

ビュー コントローラーにスイッチがある iOS アプリがあるとします。このスイッチを使用して、ユーザーのサーバー側の設定を変更したいと考えています。ユーザーがスイッチを切り替えると、非同期の NSURLConnection を起動して設定を変更すると、サーバーが応答して変更が成功したことを示し、アプリの UI に変更が反映されるようにします。ビュー コントローラーには応答を処理するコードがありますが、ユーザーがスイッチを切り替えた後、応答が戻ってくる前にビュー コントローラーを変更した場合はどうなるでしょうか?

4

2 に答える 2

0

2つの方法があります:

  1. プログレスコントローラーを表示してユーザーをブロックします。
  2. ユーザーをブロックしたくない場合は、ビューコントローラーの割り当てを解除するときに通信をキャンセルしてください。通信を閉じたくない場合は、デリゲートオブジェクトをグローバルオブジェクトに変更します。このオブジェクトは、通信が完了すると通知を渡します。
于 2013-03-23T12:42:13.980 に答える
0

NSURLConnection はデリゲートを保持します。デリゲートがビュー コントローラーであり、ユーザーがビュー コントローラーから移動した場合は、要求をキャンセルし、ビュー コントローラーの dealloc で解放することができます。そうしないと、接続が成功または失敗し、ビュー コントローラーで関連するデリゲート メソッドが呼び出されるまで、ビュー コントローラーの割り当てが解除されません。

于 2013-03-23T13:11:15.300 に答える