相关疑难解决方法(0)

如何在NSURLSession中查找和取消任务?

我正在使用一个NSURLSession对象在我的应用程序中加载图像.这可能是同时加载几个图像.

在某些时刻,我需要取消加载一个特定图像并继续加载其他图像.

你能建议正确的方法吗?

networking objective-c ios nsurlsession

15
推荐指数
5
解决办法
3万
查看次数

如果在完成之前退出页面,如何取消 URLSession.shared.dataTask?

按照/sf/answers/1939869921/的建议,我可以执行异步下载,如下所示,并在viewDidLoad.

    func loadItems(tuple : (name : String, imageURL : URL)) {
        print("Download Started")
        URLSession.shared.dataTask(with: tuple.imageURL, completionHandler :
        { data, response, error in
            guard let data = data, error == nil else { return }
            print(response?.suggestedFilename ?? tuple.imageURL.lastPathComponent)
            print("Download Finished")
            DispatchQueue.main.async() { [weak self] in
                self?.displayFlag(data: data, title: tuple.name)
            }
        }).resume()
    }
Run Code Online (Sandbox Code Playgroud)

这一切都运作良好。我的问题是,如果下载缓慢,并且我退出页面,如何以及在哪里(viewDidUnload?看起来已经不推荐使用)可以取消获取(图像下载)任务?

ios swift urlsession

5
推荐指数
1
解决办法
3261
查看次数

NSURLSession取消任务

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

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

按下按钮后,我试图停止所有当前的下载任务.

[[[self session] delegateQueue] setSuspended:YES];
[[self session] invalidateAndCancel];
Run Code Online (Sandbox Code Playgroud)

不过我在委托方法didFinishDownloadingToURL中得到了响应,我很确定在此之后没有创建新的会话或下载任务.如何阻止所有任务的发生?

cocoa-touch ios7 nsurlsession

4
推荐指数
1
解决办法
1万
查看次数