Список каталогов и файлов iCloud Drive через NSMetadataQuery

Я создал приложение с поддержкой iCloud под названием "rmc". Теперь мое приложение может загружать файлы на iCloud Drive и получать метаданные по NSMetadataQuery. Но результаты NSMetadataQuery включают только файлы в контейнере моего приложения. Пожалуйста, смотрите эту ссылку: https://developer.apple.com/videos/wwdc/2015/?id=234, это документ, и сказано, что NSMetadataQuery может получать файлы в контейнере другого приложения. Я хочу, чтобы я мог получить все файлы в iCloud Drive, как В приложении "Документ 5" и "Облако Lite" они могут получить все файлы.

пожалуйста, смотрите это изображение. Это пользовательский интерфейс приложения "Документ 5". Это приложение может получить информацию о корневом каталоге iCloud Drive. Но мое приложение может получать файлы только в папке "rmc". Я также хочу получить все каталоги и файлы в iCloud Drive. Как и в "Документе 5". Я надеюсь, что кто-нибудь сможет мне помочь и понять мой вопрос, потому что мой английский язык залит. Спасибо!!! Это мой код:

    - (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. И я установил searchScopes = [NSArray arrayWithObjects:NSMetadataQueryUbiquitousDocumentsScope,NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope,nil];

Это документация Apple об этом значении: NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope Поиск документов вне контейнера приложения. Этот поиск может найти документы iCloud, которые пользователь ранее открыл с помощью контроллера представления средства выбора документов. Это позволяет вашему приложению снова получать доступ к документам, не требуя прямого взаимодействия с пользователем. Атрибуты NSMetadataItemURLKey результата возвращают NSURL в области безопасности. Для получения дополнительной информации о работе с URL-адресами в области безопасности см. URL-адреса в области безопасности в Справочнике по классам NSURL.

0 ответов

Другие вопросы по тегам