我收到一个错误,当应用程序试图上传一个长期存在的操作,一旦用户回到互联网上的CKAsset。在重新打开应用程序时,长寿操作将返回此错误。
用于path=~/Containers/Data/Application/UUID/Documents/rawContent,CKErrorCode的
相关的decl 'e‘(_nsError:可能无法保存资产,其fileURL file:///var/mobile/Containers/Data/Application/UUID/Documents/rawContent不可访问”)
这条路对我来说是可及的,而且是公开的。是什么导致了这个错误?
发布于 2021-10-09 10:56:05
当您要上载的文件的url在重播/重新启动时,CKOperation不再可以访问它时,您可能会收到此错误。您可以通过在启动初始操作时将url存储为书签来解决此问题,如下所示:
if let data = try? url.bookmarkData(options: .minimalBookmark, includingResourceValuesForKeys: nil, relativeTo: nil) {
UserDefaults.standard.set(data, forKey: "url")
}在安装和重新启动长寿操作之前,请如下所示还原书签:
var isStale = false
guard let data = UserDefaults.standard.data(forKey: "url"),
let url = try? URL(resolvingBookmarkData: data, bookmarkDataIsStale: &isStale),
url.startAccessingSecurityScopedResource() else {
return
}将其包含在重新启动操作的最终完成处理程序中:
url.stopAccessingSecurityScopedResource()https://stackoverflow.com/questions/67072656
复制相似问题