gpt4 book ai didi

cocoa-touch - NSURLSession 取消任务

转载 作者:行者123 更新时间:2023-12-03 18:23:14 25 4
gpt4 key购买 nike

我使用以下配置创建新的 NSURLSession

 if (!self.session) {
NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfiguration:[self uniquieIdentifier]];
config.discretionary = NO;
self.session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
}

按下按钮后,我试图停止所有当前的下载任务。
[[[self session] delegateQueue] setSuspended:YES];
[[self session] invalidateAndCancel];

尽管如此,我还是在委托(delegate)方法 didFinishDownloadingToURL 中得到了响应,并且我很确定在此之后不会创建新的 session 或下载任务。如何阻止所有任务的发生?

最佳答案

我不建议使用 invalidateAndCancel 方法,因为队列及其标识符保持无效,并且在您重置整个设备之前无法重用。

NSURLSession class reference

我使用此代码取消所有待处理的任务。

- (void) cancelDownloadFiles
{

[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {

for (NSURLSessionTask *_task in downloadTasks)
{
[_task cancel];

id<FFDownloadFileProtocol> file = [self getFileDownloadInfoIndexWithTaskIdentifier:_task.taskIdentifier];

[file.downloadTask cancel];

// Change all related properties.
file.isDownloading = NO;
file.taskIdentifier = -1;
file.downloadProgress = 0.0;

}

}];

cancel = YES;
}

关于cocoa-touch - NSURLSession 取消任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19975642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com