首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有长寿命操作的CKAsset上载错误

具有长寿命操作的CKAsset上载错误
EN

Stack Overflow用户
提问于 2021-04-13 09:58:16
回答 1查看 57关注 0票数 1

我收到一个错误,当应用程序试图上传一个长期存在的操作,一旦用户回到互联网上的CKAsset。在重新打开应用程序时,长寿操作将返回此错误。

用于path=~/Containers/Data/Application/UUID/Documents/rawContent,CKErrorCode的

相关的decl 'e‘(_nsError:可能无法保存资产,其fileURL file:///var/mobile/Containers/Data/Application/UUID/Documents/rawContent不可访问”)

这条路对我来说是可及的,而且是公开的。是什么导致了这个错误?

EN

回答 1

Stack Overflow用户

发布于 2021-10-09 10:56:05

当您要上载的文件的url在重播/重新启动时,CKOperation不再可以访问它时,您可能会收到此错误。您可以通过在启动初始操作时将url存储为书签来解决此问题,如下所示:

代码语言:javascript
复制
 if let data = try? url.bookmarkData(options: .minimalBookmark, includingResourceValuesForKeys: nil, relativeTo: nil) {
     UserDefaults.standard.set(data, forKey: "url")
 }

在安装和重新启动长寿操作之前,请如下所示还原书签:

代码语言:javascript
复制
var isStale = false
guard let data = UserDefaults.standard.data(forKey: "url"),
      let url = try? URL(resolvingBookmarkData: data, bookmarkDataIsStale: &isStale),
      url.startAccessingSecurityScopedResource() else {
    return
}

将其包含在重新启动操作的最终完成处理程序中:

代码语言:javascript
复制
url.stopAccessingSecurityScopedResource()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67072656

复制
相关文章

相似问题

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