NSMetadataQuery
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 5.0 и позже.
NSMetadataQuery класс инкапсулирует функциональность, предоставленную MDQuery непрозрачный тип для запросов метаданных Центра внимания.
NSMetadataQuery объекты обеспечивают результаты запроса метаданных несколькими способами:
Как отдельные значения атрибута для требуемых атрибутов.
Как оценивают списки, содержащие отличные значения для данных атрибутов в результатах запроса.
В результате выстройте прокси, содержа все результаты запроса. Это подходит для использования с привязкой Какао.
Как иерархический набор результатов, группируясь элементы с теми же значениями для указанных атрибутов группировки. Это также подходит для использования с привязкой Какао.
Запросы имеют две фазы: начальная сборочная фаза, собирающая все в настоящее время соответствующие результаты и вторую фазу живого обновления.
По умолчанию получатель не имеет никакого ограничения на свой поисковый объем. Используйте searchScopes свойство для настройки.
По умолчанию уведомление об обновленных результатах происходит в 1,0 секунды. Используйте notificationBatchingInterval свойство для настройки.
Необходимо установить предикат с predicate свойство прежде, чем запустить запрос.
-
searchScopesСвойствоМассив, содержащий поисковые объемы.
Обсуждение
Этот массив может содержать
NSURLилиNSStringобъекты, представляющие каталоги файловой системы или поисковые объемы для запроса. Для списка допустимых поисковых объемов посмотрите Объемы Поиска Запроса Метаданных. Пустой массив указывает, что нет никакого ограничения на то, где ищет запрос.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
predicateСвойствоПредикат раньше фильтровал результаты запроса.
Объявление
Swift
@NSCopying var predicate: NSPredicate?Objective C
@property(copy) NSPredicate *predicateОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
sortDescriptorsСвойствоМассив объектов дескриптора вида.
Объявление
Swift
var sortDescriptors: [AnyObject]Objective C
@property(copy) NSArray *sortDescriptorsОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
valueListAttributesСвойствоМассив атрибутов, значения которых собраны запросом.
Объявление
Swift
var valueListAttributes: [AnyObject]Objective C
@property(copy) NSArray *valueListAttributesОбсуждение
Запрос собирает значения этих атрибутов в списки uniqued, которые могут использоваться для суммирования результатов запроса. Если
attributesnil, запрос не генерирует списков значения. Обратите внимание на то, что набор списка значения увеличивает использование CPU и значительно увеличивает использование памятиNSMetadataQueryобъект.Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Для списка допустимых атрибутов посмотрите Ключи Атрибута и Ключи «Облачного» хранилища в Ссылке класса NSMetadataItem.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
groupingAttributesСвойствоМассив группировки атрибутов. (только для чтения)
Объявление
Swift
var groupingAttributes: [AnyObject]?Objective C
@property(copy) NSArray *groupingAttributesОбсуждение
Установка этого свойства, в то время как запрос работает, останавливает запрос и отбрасывает текущие результаты. Получатель сразу запускает новый запрос.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
notificationBatchingIntervalСвойствоИнтервал, в котором происходит уведомление об обновленных результатах.
Объявление
Swift
var notificationBatchingInterval: NSTimeIntervalObjective C
@property NSTimeInterval notificationBatchingIntervalОператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
delegateСвойствоДелегат запроса.
Объявление
Swift
unowned(unsafe) var delegate: NSMetadataQueryDelegate?Objective C
@property(assign) id< NSMetadataQueryDelegate > delegateОбсуждение
Это свойство содержит объект, действующий как делегат запроса, или
nil. Делегат должен реализоватьNSMetadataQueryDelegate Protocol. Передачаnilудалить текущего делегата.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
searchItemsСвойствоМассив объектов, определяющих объем запроса.
Обсуждение
Используйте этот метод для определения объема запроса метаданных к набору существующего URLs и/или элементов метаданных. Этот массив содержит
NSURLи/илиNSMetadataItemэлементы, которые будут искаться.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
startedСвойствоБулево значение, указывающее, запустился ли запрос. (только для чтения)
Объявление
Swift
var started: Bool { get }Objective C
@property(readonly, getter=isStarted) BOOL startedОбсуждение
Это свойство содержит
YEStrueкогда получатель выполнилсяstartQueryметод; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Попытки запустить запрос.
Объявление
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Доступность
Доступный в iOS 5.0 и позже.
См. также
-
gatheringСвойствоБулево значение, указывающее, является ли получатель в начальной сборочной фазе запроса. (только для чтения)
Объявление
Swift
var gathering: Bool { get }Objective C
@property(readonly, getter=isGathering) BOOL gatheringОбсуждение
Это свойство содержит
YEStrueкогда запрос находится в начальной сборочной фазе; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
stoppedСвойствоБулево значение, указывающее, остановился ли запрос. (только для чтения)
Объявление
Swift
var stopped: Bool { get }Objective C
@property(readonly, getter=isStopped) BOOL stoppedОбсуждение
Это свойство содержит
YEStrueкогда получатель остановил запрос; иначе,NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Мешает текущему запросу получателя собрать дальнейшие результаты.
Объявление
Swift
func stopQuery()Objective C
- (void)stopQueryОбсуждение
Получатель сначала завершает сбор любых необработанных результатов. Если запрос останавливается перед собирающимися окончаниями фазы он не отправляет
NSMetadataQueryDidStartGatheringNotificationуведомление.Вы вызываете эту функцию для остановки запроса, генерирующего слишком много результатов быть полезным, но Вы все еще хотите получить доступ к доступным результатам. Если получатель отправляется a
startQueryсообщение после выполнения этого метода, существующие результаты отбрасываются.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
resultsСвойствоМассив, содержащий результаты запроса. (только для чтения)
Объявление
Swift
var results: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *resultsОбсуждение
Массив является объектом прокси, прежде всего предназначающимся для использования с привязкой Какао. В то время как возможно скопировать массив прокси и получить «снимок» полных текущих результатов запроса, это обычно не рекомендуется вследствие производительности и проблем памяти. Для доступа к отдельным элементам матрицы результата используйте
resultCountиresultAtIndex:методы.Наблюдение значения ключа поддержки массивов, которое может использоваться, чтобы быть уведомленным, когда элементы добавлены, удалены или обновлены в массиве результатов.
По умолчанию этот массив содержит
NSMetadataItemобъекты, представляя результаты запроса; однако, делегат запроса может заменить этими объектами с экземплярами различного класса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
resultCountСвойствоЧисло результатов, возвращенных запросом. (только для чтения)
Объявление
Swift
var resultCount: Int { get }Objective C
@property(readonly) NSUInteger resultCountОбсуждение
По причинам производительности необходимо использовать этот метод вместо вызова
countнаresults.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает результат запроса в определенном индексе.
Объявление
Swift
func resultAtIndex(_index: Int) -> AnyObjectObjective C
- (id)resultAtIndex:(NSUInteger)indexПараметры
indexИндекс желаемого результата в массиве результата запроса.
Возвращаемое значение
Результат запроса в позиции, указанной
index. По умолчанию этот метод возвращаетсяNSMetadataItemобъект, представляющий требуемый результат; однако, делегат запроса может заменить этим объектом с экземпляром различного класса.Обсуждение
По причинам производительности используйте этот метод при получении определенного результата, а не массива, возвращенного
results.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Возвращает индекс объекта результата запроса в массиве результатов получателя.
Объявление
Swift
func indexOfResult(_result: AnyObject) -> IntObjective C
- (NSUInteger)indexOfResult:(id)resultПараметры
resultОбъект результата запроса, запрашиваемый о.
Возвращаемое значение
Индекс
resultв массиве результата запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
groupedResultsСвойствоМассив, содержащий иерархические группы результатов запроса. (только для чтения)
Объявление
Swift
var groupedResults: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *groupedResultsОбсуждение
Эти группы основываются на атрибутах группировки получателя.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
Перечисляет текущий набор результатов с помощью данного блока.
Объявление
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Доступность
Доступный в iOS 7.0 и позже.
-
Перечисляет текущий набор результатов с помощью данных опций и блока.
Объявление
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Доступность
Доступный в iOS 7.0 и позже.
См. также
-
valueListsСвойствоСловарь, содержащий списки значения, сгенерирован запросом. (только для чтения)
Объявление
Swift
var valueLists: [NSObject : AnyObject] { get }Objective C
@property(readonly, copy) NSDictionary *valueListsОбсуждение
Это свойство содержит словарь
NSMetadataQueryAttributeValueTupleобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
См. также
-
Возвращает значение для названия атрибута
attrNameв индексе в результатах, указанныхidx.Объявление
Objective C
- (id)valueOfAttribute:(NSString *)attributeNameforResultAtIndex:(NSUInteger)indexПараметры
attributeNameАтрибут объекта результата в
indexбыть запрошенным о. Атрибут должен быть указан вvalueListAttributes, как ключ сортировки в указанном дескрипторе вида, или поскольку один из группирующихся атрибутов указал набор для запроса.indexИндекс желаемого эхо-сигнала в массиве результатов запроса.
Возвращаемое значение
Значение для
attributeNameв объекте результата вindexв массиве результата запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Включает обновления к результатам запроса.
Объявление
Swift
func enableUpdates()Objective C
- (void)enableUpdatesОбсуждение
Если Вы не используете
enumerateResultsUsingBlock:илиenumerateResultsWithOptions:usingBlock:, необходимо вызвать этот метод после того, как Вы будете сделаны, выполняя итерации по результатам запроса.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Отключает обновления к результатам запроса.
Объявление
Swift
func disableUpdates()Objective C
- (void)disableUpdatesОбсуждение
Если Вы не используете
enumerateResultsUsingBlock:илиenumerateResultsWithOptions:usingBlock:, необходимо вызвать этот метод прежде, чем выполнить итерации по результатам запроса, которые могли измениться вследствие живых обновлений.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
operationQueueСвойствоОчередь, на которой отправляются уведомления результата запроса.
Объявление
Swift
var operationQueue: NSOperationQueue?Objective C
@property(retain) NSOperationQueue *operationQueueОбсуждение
Используйте это свойство для разъединения, обработка результатов потока раньше выполняла запрос. Это упрощает синхронизировать обработку результата запроса с другими связанными операциями — такими как обновление модели данных или пользовательского интерфейса — который Вы могли бы хотеть выполнить на основной очереди.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 7.0 и позже.
-
Константы для предопределенных поисковых объемов, используемых
searchScopes.Объявление
Swift
let NSMetadataQueryUbiquitousDocumentsScope: String let NSMetadataQueryUbiquitousDataScope: String let NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope: StringObjective C
NSString * const NSMetadataQueryUbiquitousDocumentsScope; NSString * const NSMetadataQueryUbiquitousDataScope; NSString * const NSMetadataQueryAccessibleUbiquitousExternalDocumentsScopeКонстанты
-
NSMetadataQueryUbiquitousDocumentsScopeИщите все файлы в
Documentsкаталоги каталогов контейнера iCloud приложения.Доступный в iOS 5.0 и позже.
-
NSMetadataQueryUbiquitousDataScopeИщите все файлы не в
Documentsкаталоги каталогов контейнера iCloud приложения.Доступный в iOS 5.0 и позже.
-
NSMetadataQueryAccessibleUbiquitousExternalDocumentsScopeПоиск документов вне контейнера приложения. Этот поиск может определить местоположение документов iCloud, что пользователь ранее открыл использование контроллера представления средства выбора документа. Это позволяет Вашему доступу к приложениям документы снова, не требуя прямого взаимодействия с пользователем. Результат
NSMetadataItemURLKeyатрибуты возвращают ограниченный по объему безопасностью NSURLs. Для получения дополнительной информации о работе с ограниченным по объему безопасностью URLs посмотрите Ограниченный по объему безопасностью URLs в Ссылке класса NSURL.Доступный в iOS 8.0 и позже.
-
-
В дополнение к включению требуемых атрибутов метаданных результат запроса также включает уместность содержания, к которой получают доступ со следующим ключом.
Объявление
Swift
let NSMetadataQueryResultContentRelevanceAttribute: StringObjective C
NSString * const NSMetadataQueryResultContentRelevanceAttribute;Константы
-
NSMetadataQueryResultContentRelevanceAttributeКлюч раньше получал
NSNumberобъект со значением с плавающей точкой между 0,0 и 1.0 включительно. Значение уместности указывает уместность содержания объекта результата. Уместность вычислена на основе значения самого результата, не на его отношении к другим результатам, возвращенным запросом. Если значение не вычислено, оно обрабатывается как атрибут на не существующем элементе.Доступный в iOS 5.0 и позже.
-
-
Константы для ключей для получения набора измененных элементов из пользовательского информационного словаря уведомления. Обратите внимание на то, что при запросах повсеместного объема, эти ключи добавляются к пользовательскому информационному словарю только в OS X v10.10 и iOS 8.0 или позже. Для отслеживания изменений в более ранних версиях используйте KVO на запросе
resultsсвойство вместо этого.Объявление
Swift
let NSMetadataQueryUpdateAddedItemsKey: String let NSMetadataQueryUpdateChangedItemsKey: String let NSMetadataQueryUpdateRemovedItemsKey: StringObjective C
NSString * const NSMetadataQueryUpdateAddedItemsKey; NSString * const NSMetadataQueryUpdateChangedItemsKey; NSString * const NSMetadataQueryUpdateRemovedItemsKey;Константы
-
NSMetadataQueryUpdateAddedItemsKeyКлюч для получения массива элементов добавил к результату запроса. По умолчанию этот массив содержит
NSMetadataItemобъекты, представляя результаты запроса; однако, делегат запроса может заменить этими объектами с экземплярами различного класса.Доступный в iOS 8.0 и позже.
-
NSMetadataQueryUpdateChangedItemsKeyКлюч для получения массива элементов, изменившихся в результате запроса. По умолчанию этот массив содержит
NSMetadataItemобъекты, представляя результаты запроса; однако, делегат запроса может заменить этими объектами с экземплярами различного класса.Доступный в iOS 8.0 и позже.
-
NSMetadataQueryUpdateRemovedItemsKeyКлюч для получения массива элементов удален из результата запроса. По умолчанию этот массив содержит
NSMetadataItemобъекты, представляя результаты запроса; однако, делегат запроса может заменить этими объектами с экземплярами различного класса.Доступный в iOS 8.0 и позже.
-
-
Отправленный, когда получатель закончился с начальной собирающей результат фазой запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Отправленный, когда получатель начинается с начальной собирающей результат фазы запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Отправленный, когда результаты получателя изменились во время фазы живого обновления запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
-
Отправленный, поскольку получатель собирает результаты во время начальной собирающей результат фазы запроса.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 5.0 и позже.
