首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用backgroundSessionConfiguration扩展时,NSURLSessionTask创建失败

使用backgroundSessionConfiguration扩展时,NSURLSessionTask创建失败
EN

Stack Overflow用户
提问于 2015-10-23 00:14:49
回答 1查看 122关注 0票数 1

上下文:我尝试使用backgroundSessionConfiguration从操作扩展调用一个创建任务(下载或上传)。

为了做到这一点,我在苹果documention中禁用了这个例子。

代码语言:javascript
复制
-(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上也遇到了同样的问题。

EN

回答 1

Stack Overflow用户

发布于 2015-12-04 06:26:02

  1. 你用的是ARC吗?如果没有,请确保您的会话被正确保留。(看起来您直接使用的是ivar。)
  2. 共享容器标识符正确吗?如果容器不在您的授权中,或者还不存在,您的会话将立即失效。添加一个无效委托方法,并查看它是否被调用。如果是这样的话,这可能就是问题所在。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33285689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档