【发布时间】:2014-02-09 13:35:07
【问题描述】:
在我的 Mac 应用程序中,我有一个 NSMetadataQuery 来查看应用程序的 iCloud 目录。当用户决定在应用程序中启用 iCloud 时,我按以下顺序执行以下操作:
- 致电
[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]以建立对 iCloud 容器的访问权限 - 启动
NSMetadataQuery以查找iCloud 容器中的所有文件(模式:"*") - 现在我遍历本地容器中的所有文件,并使用
[fileManager setUbiquitous:YES itemAtURL:fileURL destinationURL:targetURL error:&error]将它们移动到 iCloud
我有两种类型的文档要移动到 iCloud:
- 存储为文件包的实际文档
- 对于每个文档,我都有一个
.preview文件作为简单的二进制文件
我的问题是元数据查询仅返回我的二进制预览文件,但不返回我的实际文档,直到我重新启动我的应用程序(或打开来自终端的应用程序的 iCloud 文件夹 - 在这种情况下,我的应用程序会获得另一个包含所有文件的查询结果)。
所以这是一些奇怪的缓存问题吗?是不是因为文档是文件包而不是简单的二进制文件?
我不明白为什么这会是个问题。如果我重新启动我的应用,查询确实会正确返回所有文件。
这可能是我在Info.plist 中导出自定义文档类型的方式有问题吗?
【问题讨论】:
标签: cocoa icloud nsfilemanager nsmetadataquery