上下文:我尝试使用 backgroundSessionConfiguration 从操作扩展调用创建任务(下载或上传)。
为此,我将苹果文档中的示例放在一边
-(void)downloadTest
{
NSURLSession *mySession = [self configureMySession];
NSURL *url = [NSURL URLWithString:@"http://www.sellcell.com/blog/wp-content/uploads/2014/03/dog-apps.jpg"];
NSURLSessionTask *myTask = [mySession downloadTaskWithURL:url];
[myTask resume];
}
- (NSURLSession *) configureMySession {
if (!_mySession) {
NSURLSessionConfiguration* config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.mycompany.myapp.backgroundsession"];
// To access the shared container you set up, use the sharedContainerIdentifier property on your configuration object.
config.sharedContainerIdentifier = @"group.com.mycompany.appname";
_mySession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
}
return _mySession;
}
我的问题是当我调用[mySession downloadTaskWithURL:url];
它时返回 nil。
如果我将配置更改为NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
然后创建一个任务。
我看不出我做错了什么,我创建了一个应用程序组,并在应用程序和扩展程序中使用它。
我使用我在其中创建的组名,config.sharedContainerIdentifier
但我不确定是否有必要。
注意:我对uploadTask 有同样的问题。