如何使NSMetadataQuery将我保存的文档文件夹视为包?

时间:2012-06-09 15:41:48

标签: icloud uidocument info-plist nsmetadataquery

我正在编写一个应用程序,可以在本地和iCloud上保存和加载文档。本地工作正常,但我遇到了iCloud的问题。

文档保存为包 - UIDocument读取和写入包含图像文件,缩略图文件和信息plist的NSFileWrapper。当我将文档保存到iCloud然后查看“管理存储”下的文件时,我看到的是单个文件而不是包;更重要的是,当我使用NSMetadataQuery搜索文件时,它会为每个单独的文件而不是包返回一个NSMetadataItem。因此,我的应用程序没有意识到有任何软件包需要加载,而且iCloud非常无用。

如果我设置了文档类型并正确导出了UTI,那么将正确处理这些包。那是对的吗?如果是这样,将文档类型设置为包的清单是什么?我有:

  • 添加了文档类型
  • 将LSTypeIsPackage设置为YES(我已经尝试过字符串YES和bool YES)
  • 将CFBundleTypeExtensions设置为包含一个字符串的数组:文件后缀
  • 将LSHandlerRank设置为所有者
  • 导出具有相同标识符的UTI
  • 将其设置为符合com.apple.package
  • 添加了一个UITypeTagSpecification字典,其中包含一个关键字public.filename-extension的数组,其中包含一个字符串:文件后缀

我也尝试添加匹配的导入UTI以匹配导出的UTI,但没有运气。

我错过了什么?

更新:我注意到this question中的OP正在看到我想要的行为(即使他不想要它),所以它必须是可能的。

1 个答案:

答案 0 :(得分:2)

基于this我尝试从我的plist中删除LSItemContentTypes,并且它有效。