Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы HealthKit ссылка класса HKSourceQuery

Опции
Развертывание Target:

На этой странице
Язык:

HKSourceQuery

Наследование


Соответствует


Оператор импорта


Swift

import HealthKit

Objective C

@import HealthKit;

Доступность


Доступный в iOS 8.0 и позже.

Исходные запросы позволяют Вам искать источники (приложения и устройства), которые сохранили данные к хранилищу HealthKit. Эти запросы возвращают набор, содержащий все источники для любых выборок, соответствующих запрос.

Исходные запросы являются неизменными: Их свойства установлены, когда они сначала создаются, и они не могут измениться.

Выполнение исходных запросов

Вы создаете исходный запрос путем вызова initWithSampleType:samplePredicate:completionHandler: инициализатор. После того, как запрос инстанцируют, Вы выполняете его путем вызова хранилища HealthKit executeQuery: метод. Это выполняет запрос на анонимной очереди фоновых задач. Когда запрос завершен, он выполняет обработчик результатов на той же очереди фоновых задач (но не обязательно том же потоке).

Пример кода в Перечислении 1 создает исходный запрос и обрабатывает результаты.

Перечисление 1Building исходный запрос

Swift

  • let sampleType =
  • HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)
  • let query = HKSourceQuery(sampleType: sampleType, samplePredicate: nil) {
  • query, sources, error in
  • if error != nil {
  • // Perform Proper Error Handling Here...
  • println("*** An error occured while gathering the sources for step date. \(error.localizedDescription) ***")
  • abort()
  • }
  • for object: AnyObject in sources {
  • if let source = object as? HKSource {
  • self.addStepSource(source)
  • }
  • }
  • }
  • healthStore.executeQuery(query)

Objective C

  • HKSampleType *sampleType =
  • [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
  • HKSourceQuery *query =
  • [[HKSourceQuery alloc]
  • initWithSampleType:sampleType
  • samplePredicate:nil
  • completionHandler:^(HKSourceQuery *query, NSSet *sources, NSError *error) {
  • if (error) {
  • NSLog(@"*** An error occured while gathering the sources for step date.%@ ***", error.localizedDescription);
  • abort();
  • }
  • for (HKSource *source in sources) {
  • [self addStepSource: source];
  • }
  • }];
  • [self.healthStore executeQuery:query];

Перечисление 1 создает запрос для нахождения всех источников для данных шага. Это запускается путем создания демонстрационного типа для количеств шага. Тогда это создает сам запрос. Запрос хочет собрать все источники для любых выборок данных шага в хранилище HealthKit, таким образом, это передает в a nil предикат. В обработчике обратного вызова, проверки примера кода, чтобы видеть, произошла ли ошибка. Если нет ошибки, код выполняет итерации по набору источников, обрабатывая каждый источник.

После того, как выборка определяет блок обработчика обратного вызова, запрос завершен. Пример кода просто выполняет этот запрос с помощью хранилища HealthKit.

  • Инстанцирует и возвращает исходный запрос.

    Объявление

    Swift

    init!(sampleType sampleType: HKSampleType!, samplePredicate objectPredicate: NSPredicate!, completionHandler completionHandler: ((HKSourceQuery!, Set<NSObject>!, NSError!) -> Void)!)

    Objective C

    - (instancetype)initWithSampleType:(HKSampleType *)sampleType samplePredicate:(NSPredicate *)objectPredicate completionHandler:(void (^)(HKSourceQuery *query, NSSet *sources, NSError *error))completionHandler

    Параметры

    sampleType

    Тип выборки для поиска. Этот запрос поддерживает все демонстрационные типы. В частности можно передать любой конкретный подкласс HKSampleType класс ( HKQuantityType, HKCategoryType, HKWorkoutType, и HKCorrelationType классы).

    objectPredicate

    Предикат, ограничивающий выборки, соответствующие запросом. Передача nil если Вы хотите получить источники для всех выборок указанного типа.

    completionHandler

    Блок, который вызывают, когда запрос заканчивает выполняться. Этот блок берет следующие параметры:

    query

    Ссылка на запрос, вызывая этот блок.

    results

    Набор, содержащий источники для всех выборок, соответствующих и демонстрационный тип и объектный предикат, или nil если произошла ошибка.

    error

    Если ошибка происходит, этот параметр содержит объект, описывающий ошибку; иначе, это nil.

    Возвращаемое значение

    Недавно инициализированный демонстрационный объект запроса.

    Обсуждение

    После инстанцирования запроса вызовите HKHealthStore класс executeQuery: метод для выполнения этого запроса. Запросы работают на анонимной очереди фоновых задач. Как только запрос завершен, обработчик результатов выполняется на той же очереди фоновых задач (но не обязательно на том же потоке).

    Оператор импорта

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

    Доступный в iOS 8.0 и позже.