iCloud Drive文档未包含在NSMetadataQuery结果中

时间:2015-02-23 11:20:12

标签: ios icloud nsmetadataquery icloud-drive

我有一个基本的iOS 8应用程序,它在应用程序的iCloud容器和iCloud Drive中列出了用户的文档。

我的问题是,直接在iCloud Drive(Finder→Go→iCloud Drive)中的文档不包含在元数据查询的结果中。该查询仅返回应用程序的iCloud容器Documents文件夹中的结果。

我像这样初始化查询:

self.query = [NSMetadataQuery new];
self.query.searchScopes = @[NSMetadataQueryUbiquitousDataScope,
   NSMetadataQueryUbiquitousDocumentsScope,
   NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope]; // iCloud Drive

权利看起来像这样:

<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
    <string>$(TeamIdentifierPrefix)com.my.app</string>
    <string>iCloud.com.my.app</string>
</array>

更奇怪的是:iCloud Drive中的一些文档有时会出现,但如果我将它们移出iCloud Drive并重新登录,它们就不再显示了。

2 个答案:

答案 0 :(得分:2)

想出来。 iCloud Drive文档不在应用程序的容器中,因此不包含在元数据查询结果中,因为该应用程序无法访问外部文件。

使用文档选择器打开文档后,应用程序可以访问该文档,然后它将成为元数据查询结果的一部分(直到用户将其移出iCloud Drive)。

我观察到的另一件事是:如果用户在Mac上将文档移出iCloud Drive,元数据查询将不会在iOS上收到更新。尝试在iOS上打开文档只会导致错误(找不到文件)。

答案 1 :(得分:0)

我还想直接在iCloud驱动器中获取文件和目录。我找到了一个名为&#34;文件5&#34;已经这样做了。这是我的问题:iCloud Drive list directories and files through NSMetadataQuery