1

私はアプリの更新モジュールをやっています。私がやりたいことは次のとおりです。

新しいバージョンが検出された場合は、ユーザーの更新を促し、同時に、ある場合はすべてのネットワーク要求をキャンセルします。リクエストは AFNETWORK によって作成される可能性があり、[NSURLConnection sendSynchronousRequest:returningResponse:error:] のように作成される可能性がある、あらゆる種類のネットワーク リクエストであり、それらすべてをキャンセルするだけです。できますか?

4

3 に答える 3

0

コメントの中で、OP は、アプリの他の部分が利用できなくなったネットワーク API にアクセスしようとするのではないかと心配しているため、これを実行したいと述べています。

その場合、これを行う最善の方法は、アプリの他の部分が API を提供することです。この API を、あなたの部分であるアップデーターが呼び出して「すべてを中止してください!」と言うことができます。これにはいくつかの利点があります。

  • アプリの他の部分が BGNetworking の使用を開始した場合 (AFNetworking が来年リリースされると、これは AFNetworking よりもはるかに優れたものになります)、アップデータ コードは引き続き機能します。
  • これにより、アプリの他の部分に、必要なクリーンアップを行う機会が与えられます。たとえば、何か問題が発生したために API 呼び出しを再試行するのではなく、単にあきらめる場合があります。

このアップデーター コンポーネントは、アプリケーションの残りの部分から独立して設計できるものではないようです。

于 2013-04-02T03:59:15.050 に答える
0

使用している場合はAFHTTPClient、その操作キューを取得して、その操作をすべてキャンセルできます。

ただし、NSURLConnection作成したすべてのオブジェクトのリストがない限り、すべてのオブジェクトを単純にキャンセルする方法を知りませんNSURLConnection

于 2013-04-02T03:44:50.573 に答える