Список каталогов и файлов 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.