2011-01-30 14 views
2

私のiPhone/iPadアプリでは、「APIManager」(AppDelegateで作成されたシングルトン)を通じてすべてのネットワークとWeb-APIリクエストを処理しています。ASINetworkQueueの特定のASIHTTPリクエストのキャンセル

現在、APIManagerには単一のASINetworkQueueのみが含まれており、そこにはAPIRequests(ASIHTTPRequestのサブクラス)が追加されて実行されます。各APIRequestのuserInfoには、要求を処理するいくつかの追加情報が追加されます(応答がコアデータに解析されるかどうか、そうであればどのエンティティか)。

ユーザーが1つのビュー(ViewA)から別のビュー(ViewX)に移動するときに、ViewAが実行するようにViewAが要求したすべてのリクエストをキャンセルし、他のユーザーに続行させる可能性があります。

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

ありがとうございます!

答えて

3

[queue operations]は、キュー内のアイテムのNSArrayを返します。これにより、好きなときに反復して 'キャンセル'を呼び出すことができます。

ような何か:ちょうど私が探していたもの

for (ASIHTTPRequest *req in [queue operations]) 
{ 
    if (shouldCancel(req)) 
     [req cancel]; 
} 
+0

!私は今日後で試してみるよ、ありがとう! –

関連する問題