有人知道以持久方式从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];
}
答案 0 :(得分:2)
我能看到的两个明显的选择是:
[queue cancelAllOperations];
或者如果你想要更多控制:
[request cancel];
对于您要“删除”的每个请求(从技术上讲,这不是删除它们,但可能会产生足够接近的效果)。
虽然,我认为[queue reset];
也应该有效 - 也许您可以准确解释当您尝试使用它时会发生什么?
如果所有其他方法都失败了,那么释放然后重新创建队列应该删除所有内容。
<强>更新强>
为了进一步说明,我认为实际上不能从NSOperationQueue中删除项目,只能取消它们。 (ASINetworkQueue是NSOperationQueue的子类。)
苹果文档在这里: