【发布时间】:2015-09-11 18:48:34
【问题描述】:
先介绍一下背景: 应用程序应该从 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;
}
这是从 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];
我如何从这个请求中获得响应?
Apple 文档说,在使用 backgroundSessionConfiguration 时,您不能将块作为 completionHandler。
【问题讨论】:
标签: ios objective-c amazon-web-services nsurlsession nsurlsessiondownloadtask