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, которые могут использоваться для суммирования результатов запроса. Если
attributes
nil
, запрос не генерирует списков значения. Обратите внимание на то, что набор списка значения увеличивает использование 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: NSTimeInterval
Objective 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
Обсуждение
Это свойство содержит
YES
true
когда получатель выполнилсяstartQuery
метод; иначе,NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Попытки запустить запрос.
Объявление
Swift
func startQuery() -> Bool
Objective C
- (BOOL)startQuery
Возвращаемое значение
YES
true
когда успешный; иначе,NO
false
.Обсуждение
Запрос не может быть запущен, если получатель уже выполняет запрос, или никакой предикат не был указан.
Этот метод нужно вызвать на основном потоке. Например:
Swift
var startQuery = false
let query = // Set up a query
dispatch_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 query
dispatch_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
Обсуждение
Это свойство содержит
YES
true
когда запрос находится в начальной сборочной фазе; иначе,NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
stopped
СвойствоБулево значение, указывающее, остановился ли запрос. (только для чтения)
Объявление
Swift
var stopped: Bool { get }
Objective C
@property(readonly, getter=isStopped) BOOL stopped
Обсуждение
Это свойство содержит
YES
true
когда получатель остановил запрос; иначе,NO
false
.Оператор импорта
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)
opts
usingBlock:(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 *)
attributeName
forResultAtIndex:(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: String
Objective 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: String
Objective 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: String
Objective 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 и позже.