NSURLSession错误域= NSPOSIXErrorDomain代码= 2“没有这样的文件或目录”

时间:2017-10-10 13:27:05

标签: ios iphone nsurlsession nsurlsessiondownloadtask

我正在使用NSURLSession后台会话配置在后台下载文件。

- (void)initBackgroundSession {

    self.backgroundSessionManager = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:IELBackgroundSesssionCourseDownload] delegate:self delegateQueue:[NSOperationQueue mainQueue]];

    [self updateCurrentDownloadingCourse];
    self.isSuspendcourseDownloadTask = false;
}

- (void)updateCurrentDownloadingCourse {

[_backgroundSessionManager getTasksWithCompletionHandler:^(NSArray<NSURLSessionDataTask *> * _Nonnull dataTasks, NSArray<NSURLSessionUploadTask *> * _Nonnull uploadTasks, NSArray<NSURLSessionDownloadTask *> * _Nonnull downloadTasks) {

    NSLog(@"Count of DownloadTask %lu",(unsigned long)downloadTasks.count);
    for (NSURLSessionDownloadTask *downloadTask in downloadTasks) {

            NSDictionary *customDescription = [downloadTask getCustomTaskDescription];
            NSString *courseId = customDescription[IELCourseJSONKeyCoureID];
            if (courseId) {

                [self setDownloadingCourse_id:courseId];
                [self setCourseDownloadTask:downloadTask];
                break;
            }

            [downloadTask resume];
    }
}];
}

现在问题是如果下载正在进行中,我按两次主页按钮从后台关闭应用程序。然后,如果我重新打开该应用程序。然后所有下载开始失败,给出以下错误消息。如果我在NSURLSession对象中重新添加下载任务,那么它会失败直到我从后台关闭应用程序并重新打开应用程序。

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error 


Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory" UserInfo={NSErrorFailingURLKey=https://ilmsdevqa.inspiredlms.com/Content/Organizations/1544/ScormCourses/offline/2970-offline.zip, NSErrorFailingURLStringKey=https://ilmsdevqa.inspiredlms.com/Content/Organizations/1544/ScormCourses/offline/2970-offline.zip}

2 个答案:

答案 0 :(得分:1)

如果您强制退出该应用程序,则所有后台下载将被取消并生成此错误。在文档中。

(猜测这就是您的意思,“我通过两次按下主屏幕按钮从后台关闭应用程序”)

答案 1 :(得分:0)

我遇到了类似的问题,但不完全相同,但是通过Google搜索发现了这个问题-这是错误代码和一种解决方案。

Error Domain=NSCocoaErrorDomain Code=260 "The file “PlugIns” couldn’t be opened because there is no such file." ...  NSUnderlyingError= ... {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

修复:使用Apple开发人员ID对应用进行签名- https://developer.apple.com/developer-id/

修补程序:

sudo spctl --master-disable