Как следить за локальным каталогом документов NSMetaDataQuery - PullRequest
4 голосов
/ 18 ноября 2011

С iCloud я настроил MetaDataQuery следующим образом:

[query setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];

Как мне настроить тот же MetaDataQuery для моего обычного локального каталога документов?

Следующий код даст мнестатический список файлов в моем каталоге - но я искал более динамичный способ, чтобы я мог использовать NSMetadataQueryDidUpdateNotification.

Вот мой статический код для поиска файлов в моей папке DocumentsDirectory:

NSArray* localDocuments = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:
                           [self documentsDirectory] error:nil];

NSArray *onlyPQs = [localDocuments filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.pq'"]];

NSLog(@"local file count: %i", [onlyPQs count]);

for (int i=0; i < [onlyPQs count]; i++) {
    NSLog(@"LOCAL:%@", [onlyPQs objectAtIndex:i]);
}

1 Ответ

5 голосов
/ 24 ноября 2011

Я искал ответ на этот вопрос и, согласно документации ( Поиск в iCloud и на рабочем столе ), это невозможно:

В отличие от рабочего стола, песочница приложения iOS не доступна для поиска используя классы метаданных. Для поиска вашего приложения песочница, вам нужно будет пройтись по файлам внутри файла песочницы Система рекурсивно использует класс NSFileManager.

В Mac OS X определены три дополнительные области: NSMetadataQueryUserHomeScope, NSMetadataQueryLocalComputerScope и NSMetadataQueryNetworkScope, которые можно использовать для достижения этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...