iCloud UIDocument在iOS 13上更新后打开失败
我有一个简单的UIDocument子类,它具有覆盖iCloud UIDocument在iOS 13上更新后打开失败,ios,swift,icloud,uidocument,icloud-documents,Ios,Swift,Icloud,Uidocument,Icloud Documents,我有一个简单的UIDocument子类,它具有覆盖load和contents函数 在更新iOS 13之前,json文档保存在url“/private/var/mobile/Library/mobile Documents/iCloud~appbundle/Documents/EFB7FCBA96684AC0B101E3CD829E6996.json”中 在当前iOS版本13.2.2(更新后)中,此文档不会打开: let cloudDocument: ICloudDocument = ICloud
load
和contents
函数
在更新iOS 13之前,json文档保存在url“/private/var/mobile/Library/mobile Documents/iCloud~appbundle/Documents/EFB7FCBA96684AC0B101E3CD829E6996.json”中
在当前iOS版本13.2.2(更新后)中,此文档不会打开:
let cloudDocument: ICloudDocument = ICloudDocument(fileURL: url)
cloudDocument.open { (openSuccess) in
if openSuccess {
success()
} else {
// in my case openSuccess is false
failure()
}
}
调试信息。
重写ICloudDocument中的handleError
后
override func handleError(_ error: Error, userInteractionPermitted: Bool) {
print("userInteractionPermitted - \(userInteractionPermitted)")
print(error)
}
在控制台中:
userInteractionPermitted - true
Error Domain=NSCocoaErrorDomain Code=256 "The file “EFB7FCBA96684AC0B101E3CD829E6996” couldn’t be opened." UserInfo={NSURL=file:///private/var/mobile/Library/Mobile%20Documents/iCloud~appbundle/Documents/EFB7FCBA96684AC0B101E3CD829E6996.json}
如果我在ICloudDocument中使用cloudDocument.read
方法,它可以很好地从文件中接收数据,但是open
会抛出错误
DocumentStatecloudDocument。文档的DocumentState
已关闭
文件选项:
> print(FileManager.default.isWritableFile(atPath: url.path))
true
> print(FileManager.default.isReadableFile(atPath: url.path))
true
URLResourceKey:
URLResourceKey.ubiquitousItemIsUploadingKey - true
URLResourceKey.ubiquitousItemIsUploadedKey - false
URLResourceKey.ubiquitousItemUploadingErrorKey - nil
URLResourceKey.ubiquitousItemHasUnresolvedConflictsKey - false
URLResourceKey.isUbiquitousItemKey - true
URLResourceKey.ubiquitousItemDownloadingStatusKey - "NSURLUbiquitousItemDownloadingStatusCurrent"
我发现一个关于这个问题的链接没有答案
有什么想法吗?重新启动iOS解决了这个问题。我认为在升级到iOS 13和迁移之后,系统需要额外的重新加载