小编wag*_*nto的帖子

如何从NSURLSessionDownloadTask downloadTaskWithRequest获得响应

首先是一些背景:应用程序应该从AWS S3服务器获取文件.为了做到这一点,该过程的第一步是转到本地服务器并从中获取文件的名称和一些其他信息.在该步骤之后,我们有一个完整的URLMutableRequest.

注意:我将NSURLSession设置为后台会话:

- (NSURLSession *)backgroundSession
{
    static NSURLSession *session = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"identifier"];
        session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    });
    return session;
}
Run Code Online (Sandbox Code Playgroud)

这是从AWS S3服务器下载文件的任务:

对于此任务,我想使用委托以后台模式运行.

@property (nonatomic, strong) NSURLSessionDownloadTask *downloadTask;
@property (nonatomic, strong) NSURLSession *defaultSession; 

self.defaultSession = [self backgroundSession];
self.downloadTask = [self.defaultSession downloadTaskWithRequest:request];
[self.downloadTask resume];
Run Code Online (Sandbox Code Playgroud)

如何获得此请求的响应?

Apple文档说你在使用时不能将块作为completionHandler backgroundSessionConfiguration.

objective-c amazon-web-services ios nsurlsession nsurlsessiondownloadtask

4
推荐指数
2
解决办法
3396
查看次数