在我的 Mac 应用程序中,我可以NSMetadataQuery
查看应用程序的 iCloud 目录。当用户决定从应用程序中启用 iCloud 时,我按以下顺序执行以下操作:
- 调用
[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]
以建立对 iCloud 容器的访问权限 - 启动 a查找iCloud 容器中的
NSMetadataQuery
所有文件(模式:)"*"
- 现在我遍历本地容器中的所有文件,并通过使用将它们移动到 iCloud
[fileManager setUbiquitous:YES itemAtURL:fileURL destinationURL:targetURL error:&error]
我有两种类型的文档要移至 iCloud:
- 存储为文件包的实际文档
- 对于每个文档,我都有一个
.preview
文件作为简单的二进制文件
我的问题是元数据查询只返回我的二进制预览文件,而不是我的实际文档,直到我重新启动我的应用程序(或从终端打开应用程序的 iCloud 文件夹的 Finder 窗口 - 在这种情况下,我的应用程序得到另一个查询结果所有文件)。
那么这是一些奇怪的缓存问题吗?这是因为文件是文件包而不是简单的二进制文件吗?
我不明白为什么这应该是一个问题。如果我重新启动我的应用程序,查询确实会正确返回所有文件。
这可能是我的自定义文档类型导出方式的问题Info.plist
吗?