NSURLSession 后台上传 - 需要启用后台模式吗?

NSURLSession background upload - need to enable background modes?

我正在实例化一个 NSURLSession 来执行多个后台上传,如下所示:

  sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:myIdentifier];

大部分情况下一切似乎都正常,但我想知道如果我所做的只是后台上传而不是下载,是否需要在 p.list 后台 Fetch 键中添加?我找不到说明我应该或不应该的文件。特别是在 XCode 5 + 上,我想知道是否在 Capabilities>Background modes 下,我应该启用或不启用后台获取,如果我所做的只是后台上传,请注意我确实在上传后阅读了响应完成,可以认为是"download".

官方指南Background Execution声明三种后台执行类型:

  1. 执行有限长度任务 - 使用UIApplication方法
    beginBackgroundTaskWithName:expirationHandler:执行有限 时间任务.
  2. 正在后台下载内容 - 使用NSURLSession 下载内容。您的应用提供的 NSURLSession 运行 单独的系统级守护进程,完成后返回到应用程序 完成处理程序。 (你上面提到的实现)
  3. 实施长期运行任务 - 需要运行宁的任务 很长一段时间,都在这个类别下处理,如音频,voip, 位置、下载过程、更新内容。这些类型的任务 需要 info.plist.
  4. 中提到的特殊 UIBackgroundModes

因此,在回答您的问题时,您不需要 UIBackgroundModes 密钥,除非您不属于 运行 宁任务类别。