0

アプリのiCloudコンテナとiCloudドライブにあるユーザーのドキュメントをリストする基本的なiOS 8アプリがあります。

私の問題は、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 からそれらを移動して戻すと、それらは表示されなくなります。

4

2 に答える 2

2

理解した。アプリは外部ファイルにアクセスできないため、iCloud Drive ドキュメントはアプリのコンテナにないため、メタデータ クエリの結果には含まれません。

ドキュメントがドキュメント ピッカーで開かれると、アプリはそのドキュメントにアクセスできるようになり、それ以降 (ユーザーがドキュメントを iCloud Drive から移動するまで) メタデータ クエリの結果の一部になります。

私が観察したもう 1 つのこと: ユーザーがドキュメントを Mac の iCloud ドライブから移動すると、メタデータ クエリは iOS で更新を受信しません。iOS でドキュメントを開こうとすると、単にエラーが発生します (ファイルが見つかりません)。

于 2015-04-03T07:14:05.150 に答える