NSMetadataQuery
NSMetadataQuery класс инкапсулирует функциональность, предоставленную MDQuery непрозрачный тип для запросов метаданных Центра внимания.
NSMetadataQuery объекты обеспечивают результаты запроса метаданных несколькими способами:
Как отдельные значения атрибута для требуемых атрибутов.
Как оценивают списки, содержащие отличные значения для данных атрибутов в результатах запроса.
В результате выстройте прокси, содержа все результаты запроса. Это подходит для использования с привязкой Какао.
Как иерархический набор результатов, группируясь элементы с теми же значениями для указанных атрибутов группировки. Это также подходит для использования с привязкой Какао.
Запросы имеют две фазы: начальная сборочная фаза, собирающая все в настоящее время соответствующие результаты и вторую фазу живого обновления.
По умолчанию получатель не имеет никакого ограничения на свой поисковый объем. Используйте searchScopes свойство для настройки.
По умолчанию уведомление об обновленных результатах происходит в 1,0 секунды. Используйте notificationBatchingInterval свойство для настройки.
Необходимо установить предикат с predicate свойство прежде, чем запустить запрос.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.4 и позже.
-
searchScopes searchScopesСвойствоМассив, содержащий поисковые объемы.
Обсуждение
Этот массив может содержать
NSURLилиNSStringобъекты, представляющие каталоги файловой системы или поисковые объемы для запроса. Для списка допустимых поисковых объемов посмотрите Объемы Поиска Запроса Метаданных. Пустой массив указывает, что нет никакого ограничения на то, где ищет запрос.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Предикат раньше фильтровал результаты запроса.
Объявление
Swift
@NSCopying var predicate: NSPredicate?Objective C
@property(copy) NSPredicate *predicateОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
sortDescriptors sortDescriptorsСвойствоМассив объектов дескриптора вида.
Объявление
Swift
var sortDescriptors: [AnyObject]Objective C
@property(copy) NSArray *sortDescriptorsОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
valueListAttributes valueListAttributesСвойствоМассив атрибутов, значения которых собраны запросом.
Объявление
Swift
var valueListAttributes: [AnyObject]Objective C
@property(copy) NSArray *valueListAttributesОбсуждение
Запрос собирает значения этих атрибутов в списки uniqued, которые могут использоваться для суммирования результатов запроса. Если
attributesnil, запрос не генерирует списков значения. Обратите внимание на то, что набор списка значения увеличивает использование CPU и значительно увеличивает использование памятиNSMetadataQueryобъект.Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Для списка допустимых атрибутов посмотрите Ключи Атрибута и Ключи «Облачного» хранилища в Ссылке класса NSMetadataItem.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
groupingAttributes groupingAttributesСвойствоМассив группировки атрибутов. (только для чтения)
Объявление
Swift
var groupingAttributes: [AnyObject]?Objective C
@property(copy) NSArray *groupingAttributesОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Интервал, в котором происходит уведомление об обновленных результатах.
Объявление
Swift
var notificationBatchingInterval: NSTimeIntervalObjective C
@property NSTimeInterval notificationBatchingIntervalОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Делегат запроса.
Объявление
Swift
unowned(unsafe) var delegate: NSMetadataQueryDelegate?Objective C
@property(assign) id< NSMetadataQueryDelegate > delegateОбсуждение
Это свойство содержит объект, действующий как делегат запроса, или
nil. Делегат должен реализоватьNSMetadataQueryDelegate Protocol. Передачаnilудалить текущего делегата.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
searchItems searchItemsСвойствоМассив объектов, определяющих объем запроса.
Обсуждение
Используйте этот метод для определения объема запроса метаданных к набору существующего URLs и/или элементов метаданных. Этот массив содержит
NSURLи/илиNSMetadataItemэлементы, которые будут искаться.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.9 и позже.
-
запущенный запущенныйСвойствоБулево значение, указывающее, запустился ли запрос. (только для чтения)
Объявление
Swift
var started: Bool { get }Objective C
@property(readonly, getter=isStarted) BOOL startedОбсуждение
Это свойство содержит
YEStrueкогда получатель выполнилсяstartQueryметод; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
См. также
-
Попытки запустить запрос.
Объявление
Swift
func startQuery() -> BoolObjective C
- (BOOL)startQueryВозвращаемое значение
YEStrueкогда успешный; иначе,NOfalse.Обсуждение
Запрос не может быть запущен, если получатель уже выполняет запрос, или никакой предикат не был указан.
Этот метод нужно вызвать на основном потоке. Например:
Swift
var startQuery = falselet query = // Set up a querydispatch_sync(dispatch_get_main_queue()) {startQuery = query.startQuery()}if !startQuery {// Handle the error}
Objective C
__block BOOL startedQuery = NO;NSMetadataQuery * query = //Initialize and set up a querydispatch_sync(dispatch_get_main_queue(), ^{startedQuery = [query startQuery];});if (!startedQuery) {// Handle the error}
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Булево значение, указывающее, является ли получатель в начальной сборочной фазе запроса. (только для чтения)
Объявление
Swift
var gathering: Bool { get }Objective C
@property(readonly, getter=isGathering) BOOL gatheringОбсуждение
Это свойство содержит
YEStrueкогда запрос находится в начальной сборочной фазе; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
См. также
-
остановленный остановленныйСвойствоБулево значение, указывающее, остановился ли запрос. (только для чтения)
Объявление
Swift
var stopped: Bool { get }Objective C
@property(readonly, getter=isStopped) BOOL stoppedОбсуждение
Это свойство содержит
YEStrueкогда получатель остановил запрос; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
См. также
-
Мешает текущему запросу получателя собрать дальнейшие результаты.
Объявление
Swift
func stopQuery()Objective C
- (void)stopQueryОбсуждение
Получатель сначала завершает сбор любых необработанных результатов. Если запрос останавливается перед собирающимися окончаниями фазы он не отправляет
NSMetadataQueryDidStartGatheringNotificationуведомление.Вы вызываете эту функцию для остановки запроса, генерирующего слишком много результатов быть полезным, но Вы все еще хотите получить доступ к доступным результатам. Если получатель отправляется a
startQueryсообщение после выполнения этого метода, существующие результаты отбрасываются.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
результаты результатыСвойствоМассив, содержащий результаты запроса. (только для чтения)
Объявление
Swift
var results: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *resultsОбсуждение
Массив является объектом прокси, прежде всего предназначающимся для использования с привязкой Какао. В то время как возможно скопировать массив прокси и получить «снимок» полных текущих результатов запроса, это обычно не рекомендуется вследствие производительности и проблем памяти. Для доступа к отдельным элементам матрицы результата используйте
resultCountиresultAtIndex:методы.Наблюдение значения ключа поддержки массивов, которое может использоваться, чтобы быть уведомленным, когда элементы добавлены, удалены или обновлены в массиве результатов.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
resultCount resultCountСвойствоЧисло результатов, возвращенных запросом. (только для чтения)
Объявление
Swift
var resultCount: Int { get }Objective C
@property(readonly) NSUInteger resultCountОбсуждение
По причинам производительности необходимо использовать этот метод вместо вызова
countнаresults.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Возвращает результат запроса в определенном индексе.
Объявление
Swift
func resultAtIndex(_index: Int) -> AnyObjectObjective C
- (id)resultAtIndex:(NSUInteger)indexПараметры
indexИндекс желаемого результата в массиве результата запроса.
Возвращаемое значение
Результат запроса в позиции, указанной
index.Обсуждение
По причинам производительности используйте этот метод при получении определенного результата, а не массива, возвращенного
results.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Возвращает индекс объекта результата запроса в массиве результатов получателя.
Объявление
Swift
func indexOfResult(_result: AnyObject) -> IntObjective C
- (NSUInteger)indexOfResult:(id)resultПараметры
resultОбъект результата запроса, запрашиваемый о.
Возвращаемое значение
Индекс
resultв массиве результата запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
groupedResults groupedResultsСвойствоМассив, содержащий иерархические группы результатов запроса. (только для чтения)
Объявление
Swift
var groupedResults: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *groupedResultsОбсуждение
Эти группы основываются на атрибутах группировки получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Перечисляет текущий набор результатов с помощью данного блока.
Объявление
Swift
func enumerateResultsUsingBlock(_block: (AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateResultsUsingBlock:(void (^)(id result, NSUInteger idx, BOOL *stop))blockПараметры
blockБлок для выполнения для каждого текущего результата.
Обсуждение
Этот метод отключает запрос в начале итерации и повторно включает его после завершения. Использовать
enumerateResultsWithOptions:usingBlock:если Вы хотите использовать параллельную или обратную итерацию.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.9 и позже.
-
Перечисляет текущий набор результатов с помощью данных опций и блока.
Объявление
Swift
func enumerateResultsWithOptions(_opts: NSEnumerationOptions, usingBlockblock: (AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateResultsWithOptions:(NSEnumerationOptions)optsusingBlock:(void (^)(id result, NSUInteger idx, BOOL *stop))blockПараметры
optsОпции для перечисления. Для полного списка опций посмотрите
NSEnumerationOptions.blockБлок для выполнения для каждого текущего результата.
Обсуждение
Этот метод отключает запрос в начале итерации и повторно включает его после завершения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.9 и позже.
См. также
-
valueLists valueListsСвойствоСловарь, содержащий списки значения, сгенерирован запросом. (только для чтения)
Объявление
Swift
var valueLists: [NSObject : AnyObject] { get }Objective C
@property(readonly, copy) NSDictionary *valueListsОбсуждение
Это свойство содержит словарь
NSMetadataQueryAttributeValueTupleобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
См. также
-
Возвращает значение для названия атрибута
attrNameв индексе в результатах, указанныхidx.Объявление
Objective C
- (id)valueOfAttribute:(NSString *)attributeNameforResultAtIndex:(NSUInteger)indexПараметры
attributeNameАтрибут объекта результата в
indexбыть запрошенным о. Атрибут должен быть указан вvalueListAttributes, как ключ сортировки в указанном дескрипторе вида, или поскольку один из группирующихся атрибутов указал набор для запроса.indexИндекс желаемого эхо-сигнала в массиве результатов запроса.
Возвращаемое значение
Значение для
attributeNameв объекте результата вindexв массиве результата запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Включает обновления к результатам запроса.
Объявление
Swift
func enableUpdates()Objective C
- (void)enableUpdatesОбсуждение
Если Вы не используете
enumerateResultsUsingBlock:илиenumerateResultsWithOptions:usingBlock:, необходимо вызвать этот метод после того, как Вы будете сделаны, выполняя итерации по результатам запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Отключает обновления к результатам запроса.
Объявление
Swift
func disableUpdates()Objective C
- (void)disableUpdatesОбсуждение
Если Вы не используете
enumerateResultsUsingBlock:илиenumerateResultsWithOptions:usingBlock:, необходимо вызвать этот метод прежде, чем выполнить итерации по результатам запроса, которые могли измениться вследствие живых обновлений.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
operationQueue operationQueueСвойствоОчередь, на которой отправляются уведомления результата запроса.
Объявление
Swift
var operationQueue: NSOperationQueue?Objective C
@property(retain) NSOperationQueue *operationQueueОбсуждение
Используйте это свойство для разъединения, обработка результатов потока раньше выполняла запрос. Это упрощает синхронизировать обработку результата запроса с другими связанными операциями — такими как обновление модели данных или пользовательского интерфейса — который Вы могли бы хотеть выполнить на основной очереди.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.9 и позже.
-
Константы для предопределенных поисковых объемов, используемых
searchScopes.Объявление
Swift
let NSMetadataQueryUserHomeScope: NSString! let NSMetadataQueryLocalComputerScope: NSString! let NSMetadataQueryNetworkScope: NSString! let NSMetadataQueryUbiquitousDocumentsScope: NSString! let NSMetadataQueryUbiquitousDataScope: NSString! let NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope: NSString! let NSMetadataQueryIndexedLocalComputerScope: NSString! let NSMetadataQueryIndexedNetworkScope: NSString!Objective C
NSString * const NSMetadataQueryUserHomeScope; NSString * const NSMetadataQueryLocalComputerScope; NSString * const NSMetadataQueryNetworkScope; NSString * const NSMetadataQueryUbiquitousDocumentsScope; NSString * const NSMetadataQueryUbiquitousDataScope; NSString * const NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope NSString * const NSMetadataQueryIndexedLocalComputerScope; NSString * const NSMetadataQueryIndexedNetworkScope;Константы
-
NSMetadataQueryUserHomeScopeNSMetadataQueryUserHomeScopeИщите корневой каталог пользователя.
Доступный в OS X v10.4 и позже.
-
NSMetadataQueryLocalComputerScopeNSMetadataQueryLocalComputerScopeИщите все локальные смонтированные объемы, включая пользовательский корневой каталог. Корневой каталог пользователя ищется, даже если это - удаленный объем.
Доступный в OS X v10.4 и позже.
-
NSMetadataQueryNetworkScopeNSMetadataQueryNetworkScopeИщите все смонтированные пользователями удаленные объемы.
Доступный в OS X v10.4 и позже.
-
NSMetadataQueryUbiquitousDocumentsScopeNSMetadataQueryUbiquitousDocumentsScopeИщите все файлы в
Documentsкаталоги каталогов контейнера iCloud приложения.Доступный в OS X v10.7 и позже.
-
NSMetadataQueryUbiquitousDataScopeNSMetadataQueryUbiquitousDataScopeИщите все файлы не в
Documentsкаталоги каталогов контейнера iCloud приложения.Доступный в OS X v10.7 и позже.
-
NSMetadataQueryAccessibleUbiquitousExternalDocumentsScopeNSMetadataQueryAccessibleUbiquitousExternalDocumentsScopeПоиск документов вне контейнера приложения. Этот поиск может определить местоположение документов iCloud, что пользователь ранее открыл использование контроллера представления средства выбора документа. Это позволяет Вашему доступу к приложениям документы снова, не требуя прямого взаимодействия с пользователем. Результат
NSMetadataItemURLKeyатрибуты возвращают ограниченный по объему безопасностью NSURLs. Для получения дополнительной информации о работе с ограниченным по объему безопасностью URLs посмотрите Ограниченный по объему безопасностью URLs в Ссылке класса NSURL.Доступный в OS X v10.10 и позже.
-
NSMetadataQueryIndexedLocalComputerScopeNSMetadataQueryIndexedLocalComputerScopeИщите все индексируемые локальные смонтированные объемы включая корневой каталог текущего пользователя (даже если корневой каталог является удаленным).
Доступный в OS X v10.9 и позже.
-
NSMetadataQueryIndexedNetworkScopeNSMetadataQueryIndexedNetworkScopeИщите все индексируемые смонтированные пользователями удаленные объемы.
Доступный в OS X v10.9 и позже.
-
-
В дополнение к включению требуемых атрибутов метаданных результат запроса также включает уместность содержания, к которой получают доступ со следующим ключом.
Объявление
Swift
let NSMetadataQueryResultContentRelevanceAttribute: NSString!Objective C
NSString * const NSMetadataQueryResultContentRelevanceAttribute;Константы
-
NSMetadataQueryResultContentRelevanceAttributeNSMetadataQueryResultContentRelevanceAttributeКлюч раньше получал
NSNumberобъект со значением с плавающей точкой между 0,0 и 1.0 включительно. Значение уместности указывает уместность содержания объекта результата. Уместность вычислена на основе значения самого результата, не на его отношении к другим результатам, возвращенным запросом. Если значение не вычислено, оно обрабатывается как атрибут на не существующем элементе.Доступный в OS X v10.4 и позже.
-
-
Константы для ключей для получения набора измененных элементов из пользовательского информационного словаря уведомления. Обратите внимание на то, что при запросах повсеместного объема, эти ключи добавляются к пользовательскому информационному словарю только в OS X v10.10 и iOS 8.0 или позже. Для отслеживания изменений в более ранних версиях используйте KVO на запросе
resultsсвойство вместо этого.Объявление
Swift
let NSMetadataQueryUpdateAddedItemsKey: NSString! let NSMetadataQueryUpdateChangedItemsKey: NSString! let NSMetadataQueryUpdateRemovedItemsKey: NSString!Objective C
NSString * const NSMetadataQueryUpdateAddedItemsKey; NSString * const NSMetadataQueryUpdateChangedItemsKey; NSString * const NSMetadataQueryUpdateRemovedItemsKey;Константы
-
NSMetadataQueryUpdateAddedItemsKeyNSMetadataQueryUpdateAddedItemsKeyКлюч для получения массива элементов добавил к результату запроса.
Доступный в OS X v10.9 и позже.
-
NSMetadataQueryUpdateChangedItemsKeyNSMetadataQueryUpdateChangedItemsKeyКлюч для получения массива элементов, изменившихся в результате запроса.
Доступный в OS X v10.9 и позже.
-
NSMetadataQueryUpdateRemovedItemsKeyNSMetadataQueryUpdateRemovedItemsKeyКлюч для получения массива элементов удален из результата запроса.
Доступный в OS X v10.9 и позже.
-
-
Отправленный, когда получатель закончился с начальной собирающей результат фазой запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Отправленный, когда получатель начинается с начальной собирающей результат фазы запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Отправленный, когда результаты получателя изменились во время фазы живого обновления запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
-
Отправленный, поскольку получатель собирает результаты во время начальной собирающей результат фазы запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.4 и позже.
