gpt4 book ai didi

ios - NSUrlSessionDownloadTask - 进入后台时 didCompleteWithError

转载 作者:可可西里 更新时间:2023-11-01 03:51:55 26 4
gpt4 key购买 nike

当我通过按下电源按钮强制我的设备进入休眠模式时,我的后台任务通过调用委托(delegate)方法 didCompleteWithError 停止并出现错误:

The operation couldn’t be completed. Operation not permitted

如何配置我的 NSURLSession 以在 sleep 模式下继续下载?

有可能吗?如果没有,我有什么选择?我需要下载一个 300Mb 的文件,因此在连接较低的情况下,应用程序将在下载结束前进入休眠模式。

这是我创建的 session :

static NSURLSession *backgroundSession;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
backgroundSession = [NSURLSession sessionWithConfiguration:
[NSURLSessionConfiguration backgroundSessionConfiguration:
@"com.myapp.mytask"] delegate:self.
myDelegate delegateQueue:self.myQueue];
});

NSURLSessionDownloadTask *task = [backgroundSession downloadTaskWithRequest:
self.urlRequest];
[task resume];

最佳答案

问题是数据保护能力被激活了。启用后,默认情况下所有文件都存储在 NSFileProtectionComplete 中,即使是 NSURLSession 用于下载的临时文件也是如此:

The default level of protection is complete protection, in which files are encrypted and inaccessible when the device is locked. You can programmatically set the level of protection for files created by your app, as described in “Protecting Data Using On-Disk Encryption” in iOS App Programming Guide.

在该文件上激活 NSFileProtectionComplete 后,您无法在设备锁定时访问它。

我不确定临时下载文件是否可以配置为不使用数据保护,似乎 NSURLSession 没有公开。

来源:App Distribution Guide

关于ios - NSUrlSessionDownloadTask - 进入后台时 didCompleteWithError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com