随着即将到来的更新,我们的 iOS 应用程序应该将数据导出到 iCloud 中的文本文件并从中导入数据。实施已基本完成,我们开始进行 beta 测试。除了一位测试版测试人员外,其他所有人似乎都运行良好。
我从 TestFlight API 收集的调试输出中收集到的内容,其中一位测试人员设法使文件进入UIDocumentStateSavingError
状态。到目前为止,无论我们让他尝试什么,我们都无法将文件从该状态中弹出。
这是测试仪设备上发生的情况:
- 使用 已成功检测到 iCloud 访问
URLForUbiquityContainerIdentifier
。 - An
NSMetadataQuery
开始定位文件并返回一个结果。 UIDocument
使用为生成的 URL 创建一个子类initWithFileURL:
。- 文件处于
UIDocumentStateSavingError
状态。此外,这是唯一设置的状态标志。 - 调用
openWithCompletionHandler:
将失败返回给处理程序,loadFromContents:ofType:error:
并且UIDocument
不会调用。
然后我们制作了一个新版本的应用程序,继续如下:
- 该应用程序尝试使用删除错误文件
[[NSFileManager defaultManager] removeItemAtURL:doc.fileURL error:&err]
。 - 结果
NSError
表明“操作无法完成。没有这样的文件或目录”。
删除文件是我们为了解决文件状态而想出的最后一件事。任何有关如何解决此问题或可能首先导致错误的提示都将不胜感激!