[英]How do I do an Asynchronous NSURLConnection inside an NSOperation?
[英]Asynchronous NSURLConnection and NSOperation - cancelling
我想取消所有請求。 以下是我創建異步連接的方法:
[NSURLConnection sendAsynchronousRequest:echo queue:self.queue completionHandler:^(NSURLResponse *respone, NSData *data, NSError *error){
然后我使用這個方法:
-(void)cancelAllRequests
{
NSLog(@"%@",self.queue.operations);
[self.queue cancelAllOperations];
[self.queue waitUntilAllOperationsAreFinished];
}
取消所有請求。
除了將BOOL更改為YES之外,實際上什么都不做。
那么我應該如何取消異步連接呢?
您無法取消使用sendAsynchronousRequest
計划的連接。 您引用的隊列僅用於安排完成處理程序。
如果要完全控制NSURLConnection
,則必須自己實現NSURLConnectionDelegate
。 可以在https://gist.github.com/3794804上找到示例實現
您可以做的是將同步請求放入操作(使用塊)。
將NSOperationQueue maxNumberOfConcurrentOperations設置為1(因此它們一次運行一個)。
然后,如果您在隊列上運行cancelAllOperations,它將停止任何尚未運行的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.