2

私の iPhone/iPad アプリでは、「APIManager」(AppDelegate で作成されたシングルトン) を介してすべてのネットワークおよび Web API 要求を処理しています。

現在、APIManager には、APIRequests (ASIHTTPRequest のサブクラス) が追加されて実行される ASINetworkQueue が 1 つだけ含まれています。各 APIRequest の userInfo には、リクエストを処理するための追加情報が追加されます (レスポンスをコア データに解析する必要があるかどうか、解析する場合はどのエンティティかなど)。

ユーザーがあるビュー (ViewA) から別のビュー (ViewX) に移動するとき、ViewA が APIManager に実行を依頼したすべてのリクエストをキャンセルし、他の人は続行できるようにしたいと考えています。

ASINetworkQueue (または NSOperationQueue) で特定の要求を見つけて、それにキャンセル メッセージを送信する機能はありますか? おそらく、リクエストのuserInfoに追加されたパラメータを使用していますか?

前もって感謝します!

4

1 に答える 1

3

[queue operations]キュー内の項目の NSArray を返します。これを繰り返して、好きな項目で「キャンセル」を呼び出すことができます。

何かのようなもの:

for (ASIHTTPRequest *req in [queue operations])
{
    if (shouldCancel(req))
        [req cancel];
}
于 2011-01-30T13:21:18.907 に答える