1

永続的な方法で ASINetworkQueue からリクエストを削除する方法を知っている人はいますか? リセット機能は機能していないようです。私がやろうとしていることは次のとおりです

- (void)fillAndRunQueue:(ASINetworkQueue*)queue requests:(NSArray*)requests {  
    for (ASIHTTPRequest* request in requests) {  
        if ([request check]) { // Valid request => add it to the queue    
            [queue addOperation:request];  
        } else { // Invalid request => cancel immediatelly  
            // HOW TO REMOVE ALL PREVIOUS REQUESTS FROM THE QUEUE??  
            return;  
        }  
    }  

    [queue go];  
}
4

1 に答える 1

2

私が見ることができる2つの明らかなオプションは次のとおりです。

[queue cancelAllOperations];

または、より詳細な制御が必要な場合:

[request cancel];

「削除」したいリクエストごとに(これは技術的にそれらを削除するわけではありませんが、目的に十分近い効果があるかもしれません)。

でも、うまくいくはずだと思います[queue reset];-それを使用しようとすると何が起こるかを正確に説明できますか?

他のすべてが失敗した場合は、キューを解放してから再作成すると、すべてが削除されます。

アップデート

さらに説明すると、アイテムを NSOperationQueue から実際に削除することはできず、キャンセルすることしかできないと思います。(ASINetworkQueue は NSOperationQueue のサブクラスです。)

アップルのドキュメントは次のとおりです。

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html

于 2010-09-11T14:21:39.947 に答える