上下文: 我嘗試使用backgroundSessionConfiguration從動作擴展調用創建任務(下載或上載)。NSURLSessionTask創建失敗,帶有backgroundSessionConfiguration擴展
要做到這一點,我的休耕爲例蘋果documention
-(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];
它返回零。
如果我將配置更改爲NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
,則會創建一個任務。
我沒有看到我做錯了什麼,我創建了一個應用程序組,我使用它的應用程序和擴展。
我使用在config.sharedContainerIdentifier
中創建的組名,但我不確定是否有必要。
注意:我有與uploadTask相同的問題。