3

「rmc」という名前の iCloud 対応アプリを作成しました。アプリはファイルを iCloud Drive にアップロードし、NSMetadataQuery によってメタデータを取得できるようになりました。ただし、NSMetadataQuery の結果には、APP のコンテナー内のファイルしか含まれません。 .apple.com/videos/wwdc/2015/?id=234、これはドキュメントであり、NSMetadataQuery は他の APP のコンテナー内のファイルを取得できると言われています。アプリ「Document 5」と「Cloud Lite」は、すべてのファイルを取得できます。 ここに画像の説明を入力

こちらの画像をご覧ください。アプリ「Document 5」のUIです。このアプリはiCloud Driveのルートディレクトリ情報を取得できますが、私のアプリは「rmc」フォルダ内のファイルしか取得できません。 iCloud Driveのディレクトリとファイル.「ドキュメント5」のように.誰かが私を助けて、私の質問を理解してくれることを願っています.私の英語は注ぐ.Thanks!!! これは私のコードです:

    - (BOOL)getFiles
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSURL *cloudURL = [fileManager URLForUbiquityContainerIdentifier:nil];

    self.query = [[NSMetadataQuery alloc]init];
    self.query.predicate = [NSPredicate predicateWithFormat:@"%K like '*'",NSMetadataItemFSNameKey]; // all
    self.query.searchScopes = [NSArray arrayWithObjects:NSMetadataQueryUbiquitousDocumentsScope,NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope,nil];
    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(getFilesFinished:)
     name:NSMetadataQueryDidFinishGatheringNotification
     object:nil];

    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(getFilesFinished:)
     name:NSMetadataQueryDidUpdateNotification
     object:nil];

    [self.query startQuery];
    return YES;
}

このメソッドは NSMetadataQuery を使用して iCloudDrive からメタデータを取得しました。

これは、この値に関する Apple のドキュメントです: NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope アプリのコンテナー外のドキュメントを検索します。この検索で​​は、ユーザーがドキュメント ピッカー ビュー コントローラーを使用して以前に開いた iCloud ドキュメントを見つけることができます。これにより、ユーザーが直接操作しなくても、アプリは再びドキュメントにアクセスできるようになります。結果の NSMetadataItemURLKey 属性は、セキュリティ スコープの NSURL を返します。セキュリティ スコープの URL の操作の詳細については、NSURL クラス リファレンスの「セキュリティ スコープの URL」を参照してください。

4

0 に答える 0