我在应用程序中使用文档包(通过 FileWrapper API),并且使用 UIDocumentBrowserViewController 类进行文档管理。文档包基本上代表(文本)文件和文件夹的层次结构。当文档存储在设备或 iCloud 中时,一切正常。但当我尝试在远程位置创建文档时,情况就不同了,而对文档的访问是由第三方文件提供商(例如 Google Drive、Microsoft One Drive 或 Dropbox)提供的。每次我尝试在任何这些位置创建文档时,我都会调用 importHandler(fileURL, .move):
Dropbox:失败并显示一般错误消息:“操作无法 完成。 (DBFileProviderErrorDomain 错误 1。)";
Google 云端硬盘:失败并显示略有不同的消息:“ 操作无法完成。 (com.apple.DocumentManager 错误 1.)"
MS OneDrive:似乎成功,但在尝试打开新的 创建文档后,应用程序将获得一个 OS_dispatch_data 对象 一个 FileWrapper 对象,这是它所期望的。
我不确定发生了什么事。我唯一能想到的是文档包仅在 Apple 文件系统上受支持。
非常感谢任何建议。 谢谢。
最佳答案
据我所知(并证实了您的怀疑),大多数非 iCloud 云存储提供商的文件提供商扩展(通过 UIDocumentBrowserViewController
访问)不能很好地处理包。例如,UIManagedDocument
对象以包格式存储其数据存储,而我通常尝试使用 UIDocumentBrowserViewController
创建/保存/移动它们到非 iCloud 云存储的经验以失败告终。请参阅我向 Apple 提交的错误报告的 OpenRadar 副本,http://openradar.appspot.com/6905951 .
关于ios - UIDocument、FileWrapper 和第三方文件提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618201/