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

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

Разработчик

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

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

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

HKQuery

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


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


Swift

import HealthKit

Objective C

@import HealthKit;

Доступность


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

HKQuery класс является основанием для всех объектов запроса, получающих данные от хранилища HealthKit. HKQuery класс является абстрактным классом. Вы никогда не должны инстанцировать HKQuery возразите непосредственно. Вместо этого Вы всегда работаете с одним из его конкретных подклассов: HKAnchoredObjectQuery, HKCorrelationQuery, HKObserverQuery, HKSampleQuery, HKSourceQuery, HKStatisticsQuery, или HKStatisticsCollectionQuery объекты.

  • HKAnchoredObjectQuery

    Этот запрос возвращает привязку для последней выборки, сохраненной к хранилищу HealthKit. На последующих запросах можно использовать привязку для запроса только выборок, добавленных после привязки. Это позволяет Вам быстро запросить для новых элементов в хранилище. Для получения дополнительной информации посмотрите Ссылку класса HKAnchoredObjectQuery.

  • HKCorrelationQuery

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

  • HKObserverQuery

    Эти продолжительные запросы вызывают свой обработчик обновления каждый раз, когда соответствующий объект сохраняется к хранилищу HeathKit. С этими запросами можно наблюдать и реагировать на данные, сохраненные в фоновом режиме другими приложениями или вводимые непосредственно в хранилище от подключенных bluetooth-устройств. Можно также зарегистрировать запросы наблюдателя для фоновой поставки. С фоновой поставкой HealthKit запустит Ваше приложение в ответ на изменения в хранилище, позволяя Вашему приложению реагировать на те изменения. Для получения дополнительной информации посмотрите Ссылку класса HKObserverQuery.

  • HKSampleQuery

    Это - запрос общего назначения. Используйте демонстрационные запросы для доступа к любому типу демонстрационных данных. Когда Вы хотите сортировать результаты или ограничить общее количество возвращенных выборок, демонстрационные запросы особенно полезны. Для получения дополнительной информации посмотрите Ссылку класса HKSampleQuery.

  • HKSourceQuery

    Этот запрос возвращает список источников (приложения и устройства), которые сохранили данные, соответствующие указанный демонстрационный тип и предикат. Для получения дополнительной информации посмотрите Ссылку класса HKSourceQuery.

  • HKStatisticsQuery

    Эти запросы вычисляют итоговые значения (среднее число, минимум, максимум или сумма) для демонстрационных данных количества. Для получения дополнительной информации посмотрите Ссылку класса HKStatisticsQuery.

  • HKStatisticsCollectionQuery

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

    Например, путем указания интервала один день длиной и вычисления суммы, можно вычислить число шагов, которые пользователь предпринимал каждый день по ряду дней. Каждая запись в полученном массиве представляет сумму шагов в течение одного дня. Для получения дополнительной информации посмотрите Ссылку класса HKStatisticsCollectionQuery.

Запросы и предикаты

Весь бетон HKQuery подклассы берут предикат. Можно использовать этот предикат для фильтрации выборок, возвращенных запросом. Когда HealthKit выполняет запрос, он преобразовывает предикат в SQL и выполняет SQL на базовом хранилище. Это имеет два важных побочных эффекта.

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

  2. Так как предикаты выполняются хранилищем, Вы ограничиваетесь в типе предикатов, которые можно использовать. В частности HealthKit обеспечивает много ключевых путей предиката (например, HKPredicateKeyPathUUID и HKPredicateKeyPathMetadata). Можно создать предикаты с помощью только эти ключевые пути.

Разделение на подклассы примечаний

Как много классов HealthKit, HKQuery класс не должен быть разделен на подклассы.

  • predicate Свойство

    Предикат раньше фильтровал объекты, возвращенные из хранилища HealthKit. (только для чтения)

    Объявление

    Swift

    var predicate: NSPredicate! { get }

    Objective C

    @property(readonly, strong) NSPredicate *predicate

    Обсуждение

    Если предикат nil, запрос не фильтрует свои результаты. Вместо этого это возвращает все объекты, соответствующие другие параметры запроса.

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • sampleType Свойство

    Тип запрашиваемых объектов. (только для чтения)

    Объявление

    Swift

    var sampleType: HKSampleType! { get }

    Objective C

    @property(readonly, strong) HKSampleType *sampleType

    Обсуждение

    Не все эхо-сигналы запросов указанного типа; однако, они все используют тип объекта для генерации их результатов. Например, источник запрашивает возврат ряд источников данных, сохранивших объекты с соответствующим типом, в то время как запросы статистики возвращают статистическую информацию об объектах с соответствующим типом.

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, соответствующий объект указанному UUID.

    Объявление

    Swift

    class func predicateForObjectWithUUID(_ UUID: NSUUID!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectWithUUID:(NSUUID *)UUID

    Параметры

    UUID

    Целевой UUID.

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

    Предикат, соответствующий конкретный объект на основе его UUID.

    Обсуждение

    Используйте этот удобный метод создать предикат, проверяющий UUID объекта. Перечисление 1 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 1Matching основанное на объектах на UUID

    Swift

    • let uuid = HKQuery.predicateForObjectWithUUID(myUUID)
    • let explicitUUID = NSPredicate(format: "%K == %@", HKPredicateKeyPathUUID, myUUID)

    Objective C

    • NSPredicate *uuid = [HKQuery predicateForObjectWithUUID:myUUID];
    • NSPredicate *explicitUUID = [NSPredicate predicateWithFormat:@"%K == %@",
    • HKPredicateKeyPathUUID,
    • myUUID];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

    См. также

    UUID
    HKPredicateKeyPathUUID

  • Возвращает предикат, соответствующий объекты указанному UUIDs.

    Объявление

    Swift

    class func predicateForObjectsWithUUIDs(_ UUIDs: Set<NSObject>!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsWithUUIDs:(NSSet *)UUIDs

    Параметры

    UUIDs

    Набор UUIDs, который будет соответствующим.

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

    Предикат, соответствующий указанные объекты на основе их UUIDs.

    Обсуждение

    Используйте этот удобный метод создать предикат, проверяющий UUID объекта по ряду UUIDs. Перечисление 2 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 2Matching указало объекты на основе ряда UUIDs

    Swift

    • let uuids = HKQuery.predicateForObjectsWithUUIDs(myUUIDs)
    • let explicitUUIDs =
    • NSPredicate(format: "%K IN %@", HKPredicateKeyPathUUID, myUUIDs)

    Objective C

    • NSPredicate *uuids = [HKQuery predicateForObjectsWithUUIDs:myUUIDs];
    • NSPredicate *explicitUUIDs = [NSPredicate predicateWithFormat:@"%K IN %@",
    • HKPredicateKeyPathUUID,
    • myUUIDs];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

    См. также

    UUID
    HKPredicateKeyPathUUID

  • Возвращает предикат, соответствующий все объекты, создававшиеся предоставленным источником.

    Объявление

    Swift

    class func predicateForObjectsFromSource(_ source: HKSource!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsFromSource:(HKSource *)source

    Параметры

    source

    Приложение или устройство, сохранившее данные в хранилище HealthKit.

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

    Предикат, соответствующий все объекты, создаваемые предоставленным источником.

    Обсуждение

    Используйте этот удобный метод создать предикат, находящий все объекты из определенного приложения или устройства. Перечисление 3 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 3Finding все объекты из определенного приложения или устройства

    Swift

    • let fromSource = HKQuery.predicateForObjectsFromSource(source)
    • let explicitFromSource =
    • NSPredicate(format: "%K == %@", HKPredicateKeyPathSource, source)

    Objective C

    • NSPredicate *fromSource = [HKQuery predicateForObjectsFromSource:source];
    • NSPredicate *explicitFromSource = [NSPredicate predicateWithFormat:@"%K == %@",
    • HKPredicateKeyPathSource,
    • source];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

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

    Объявление

    Swift

    class func predicateForObjectsFromSources(_ sources: Set<NSObject>!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsFromSources:(NSSet *)sources

    Параметры

    sources

    Ряд приложений и устройств, сохранивших данные к хранилищу HealthKit.

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

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

    Обсуждение

    Используйте этот удобный метод создать предикат, находящий все объекты от указанного набора приложений или устройств. Перечисление 4 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 4Finding все объекты от ряда приложений или устройств

    Swift

    • let fromSources = HKQuery.predicateForObjectsFromSources(sources)
    • let explicitFromSource =
    • NSPredicate(format: "%K IN %@", HKPredicateKeyPathSource, sources)

    Objective C

    • NSPredicate *fromSources = [HKQuery predicateForObjectsFromSources:sources];
    • NSPredicate *explicitFromSources = [NSPredicate predicateWithFormat:@"%K IN %@",
    • HKPredicateKeyPathSource,
    • sources];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, соответствующий любой объект, метаданные которого содержат предоставленный ключ.

    Объявление

    Swift

    class func predicateForObjectsWithMetadataKey(_ key: String!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)key

    Параметры

    key

    Ключ метаданных для соответствия. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать пользовательские ключи.

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

    Предикат, соответствующий любой объект, метаданные которого содержат предоставленный ключ.

    Обсуждение

    Используйте этот удобный метод создать предикат, считающий все объекты с определенным ключом сохраненными в их метаданных. Перечисление 5 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 5Finding все объекты с указанным ключом, сохраненным в их метаданных

    Swift

    • let metadataKey = HKQuery.predicateForObjectsWithMetadataKey(HKMetadataKeyFoodType)
    • let explicitMetadataKey =
    • NSPredicate(format: "%K.%K != nil",
    • HKPredicateKeyPathMetadata, HKMetadataKeyFoodType)

    Objective C

    • NSPredicate *metadataKey =
    • [HKQuery predicateForObjectsWithMetadataKey:HKMetadataKeyFoodType];
    • NSPredicate *explicitMetadataKey =
    • [NSPredicate predicateWithFormat:@"%K.%K != nil",
    • HKPredicateKeyPathMetadata,
    • HKMetadataKeyFoodType];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, соответствующий объекты на основе предоставленного ключа метаданных и массива целевых значений.

    Объявление

    Swift

    class func predicateForObjectsWithMetadataKey(_ key: String!, allowedValues allowedValues: [AnyObject]!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)key allowedValues:(NSArray *)allowedValues

    Параметры

    key

    Ключ метаданных для значения, которое будет соответствующим. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать использующие пользовательские ключи.

    allowedValues

    Массив допустимых значений. Эти значения должны быть NSString, NSNumber, или NSDate экземпляры.

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

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

    Обсуждение

    Используйте этот удобный метод создать предикат, соответствующий объекты на основе их метаданных. Когда этот предикат оценен, это получает значение метаданных для предоставленного ключа. Тогда предикат проверяет то значение по allowedValues массив. Если массив содержит совпадающее значение, возвраты предиката YEStrue; иначе, это возвращается NOfalse.

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

    Перечисление 6Matching возражает на основе их метаданных и целевых значений

    Swift

    • let metadataValues =
    • HKQuery.predicateForObjectsWithMetadataKey(HKMetadataKeyFoodType,
    • allowedValues: ["Pizza", "Tofu"])
    • let values: NSArray = ["Pizza", "Tofu"]
    • let explicitMetadataKey = NSPredicate(format: "%K.%K IN %@",
    • HKPredicateKeyPathMetadata, HKMetadataKeyFoodType, values)

    Objective C

    • NSPredicate *metadataValues =
    • [HKQuery predicateForObjectsWithMetadataKey:HKMetadataKeyFoodType
    • allowedValues:@[@"Pizza", @"Tofu"]];
    • NSPredicate *explicitMetadataValues =
    • [NSPredicate predicateWithFormat:@"%K.%K in %@",
    • HKPredicateKeyPathMetadata,
    • HKMetadataKeyFoodType,
    • @[@"Pizza", @"Tofu"]];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

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

    Объявление

    Swift

    class func predicateForObjectsWithMetadataKey(_ key: String!, operatorType operatorType: NSPredicateOperatorType, value value: AnyObject!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)key operatorType:(NSPredicateOperatorType)operatorType value:(id)value

    Параметры

    key

    Ключ метаданных для значения, которое будет соответствующим. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать использующие пользовательские ключи.

    operatorType

    Определяет отношение, используемое для соответствия значения метаданных предоставленному значению.

    value

    Целевое значение.

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

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

    Обсуждение

    Используйте этот удобный метод создать предикат, соответствующий объекты на основе их метаданных, оператора и целевого значения. Когда этот предикат оценен, это получает значение метаданных для предоставленного ключа. Тогда предикат сравнивает то значение с целевым значением с помощью предоставленного оператора.

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

    Перечисление 7Matching возражает на основе их метаданных, оператора и целевого значения

    Swift

    • let metadataOperator =
    • HKQuery.predicateForObjectsWithMetadataKey(AccuracyCustomMetadataKey,
    • operatorType: NSPredicateOperatorType.GreaterThanPredicateOperatorType,
    • value: 75.0)
    • let explicitMetadataOperator = NSPredicate(format: "%K.%K > %d",
    • HKPredicateKeyPathMetadata, AccuracyCustomMetadataKey,
    • 75.0)

    Objective C

    • NSPredicate *metadataOperator =
    • [HKQuery predicateForObjectsWithMetadataKey:AccuracyCustomMetadataKey
    • operatorType:NSGreaterThanPredicateOperatorType
    • value:@75.0];
    • NSPredicate *explicitMetadataOperator =
    • [NSPredicate predicateWithFormat:@"%K.%K > %d",
    • HKPredicateKeyPathMetadata,
    • AccuracyCustomMetadataKey,
    • @75.0];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, соответствующий все объекты, не связанные с корреляцией HealthKit.

    Объявление

    Swift

    class func predicateForObjectsWithNoCorrelation() -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsWithNoCorrelation

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

    Предикат, соответствующий все объекты, не связанные ни с какими корреляциями HealthKit.

    Обсуждение

    Используйте этот удобный метод создать предикат, соответствующий все объекты, не связанные с корреляцией HealthKit. Перечисление 8 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 8Matching все объекты, имеющие корреляции HealthKit

    Swift

    • let noncorrelated = HKQuery.predicateForObjectsWithNoCorrelation()
    • let explicitNoncorrelated =
    • NSPredicate(format: "%K == nil", HKPredicateKeyPathCorrelation)

    Objective C

    • NSPredicate *noncorrelated = [HKQuery predicateForObjectsWithNoCorrelation];
    • NSPredicate *explicitNoncorrelated =
    • [NSPredicate predicateWithFormat:@"%K == nil", HKPredicateKeyPathCorrelation];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

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

    Объявление

    Swift

    class func predicateForSamplesWithStartDate(_ startDate: NSDate!, endDate endDate: NSDate!, options options: HKQueryOptions) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForSamplesWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate options:(HKQueryOptions)options

    Параметры

    startDate

    Дата начала целевого временного интервала.

    endDate

    Дата окончания целевого временного интервала.

    options

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

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

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

    Обсуждение

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

    Перечисление 9Comparing запуск выборки и даты окончания с интервалом требуемого времени

    Swift

    • let timeInterval =
    • HKQuery.predicateForSamplesWithStartDate(myStartDate,
    • endDate: myEndDate, options: .None)
    • let explicitTimeInterval = NSPredicate(format: "%K >= %@ AND %K < %@",
    • HKPredicateKeyPathEndDate, myStartDate,
    • HKPredicateKeyPathStartDate, myEndDate)

    Objective C

    • NSPredicate *timeInterval =
    • [HKQuery predicateForSamplesWithStartDate:myStartDate
    • endDate:myEndDate
    • options:HKQueryOptionNone];
    • NSPredicate *explicitTimeInterval =
    • [NSPredicate predicateWithFormat:@"%K >= %@ AND %K < %@",
    • HKPredicateKeyPathEndDate, myStartDate,
    • HKPredicateKeyPathStartDate, myEndDate];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает свойство, соответствующее выборки на основе целевого количества.

    Объявление

    Swift

    class func predicateForQuantitySamplesWithOperatorType(_ operatorType: NSPredicateOperatorType, quantity quantity: HKQuantity!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForQuantitySamplesWithOperatorType:(NSPredicateOperatorType)operatorType quantity:(HKQuantity *)quantity

    Параметры

    operatorType

    Тип оператора для использования при сравнении количества выборки с целевым количеством.

    quantity

    Целевое количество.

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

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

    Обсуждение

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

    Выборки количества перечисления 10Matching против целевого количества

    Swift

    • let targetWeight = HKQuantity(unit: HKUnit.poundUnit(),
    • doubleValue: 150.0)
    • let underTargetWeight =
    • HKQuery.predicateForQuantitySamplesWithOperatorType(
    • .LessThanOrEqualToPredicateOperatorType,
    • quantity: targetWeight)
    • let explicitUnderTargetWeight = NSPredicate(format: "%K <= %@",
    • HKPredicateKeyPathQuantity,
    • targetWeight)

    Objective C

    • HKQuantity *targetWeight =
    • [HKQuantity quantityWithUnit:[HKUnit poundUnit]
    • doubleValue:150.0];
    • NSPredicate *underTargetWeight =
    • [HKQuery predicateForQuantitySamplesWithOperatorType:
    • NSLessThanOrEqualToPredicateOperatorType
    • quantity:targetWeight];
    • NSPredicate *explicitUnderTargetWeight =
    • [NSPredicate predicateWithFormat:@"%K <= %@",
    • HKPredicateKeyPathQuantity,
    • targetWeight];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, проверяющий значение выборки категории.

    Объявление

    Swift

    class func predicateForCategorySamplesWithOperatorType(_ operatorType: NSPredicateOperatorType, value value: Int) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForCategorySamplesWithOperatorType:(NSPredicateOperatorType)operatorType value:(NSInteger)value

    Параметры

    operatorType

    Тип работы для выполнения при соответствии значения выборки категории против целевого значения.

    value

    Целевое значение выборки категории.

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

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

    Обсуждение

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

    Выборки категории перечисления 11Matching против целевого значения

    Swift

    • let asleep = HKQuery.predicateForCategorySamplesWithOperatorType(
    • .EqualToPredicateOperatorType,
    • value: HKCategoryValueSleepAnalysis.Asleep.toRaw())
    • let explicitAsleep =
    • NSPredicate(format: "%K == %d",
    • HKPredicateKeyPathCategoryValue,
    • HKCategoryValueSleepAnalysis.Asleep.toRaw())

    Objective C

    • NSPredicate *asleep =
    • [HKQuery
    • predicateForCategorySamplesWithOperatorType:NSEqualToPredicateOperatorType
    • value:HKCategoryValueSleepAnalysisAsleep];
    • NSPredicate *explicitlyAsleep =
    • [NSPredicate predicateWithFormat:@"%K == %d",
    • HKPredicateKeyPathCategoryValue,
    • HKCategoryValueSleepAnalysisAsleep];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат, соответствующий любые объекты, связанные с предоставленной проверкой.

    Объявление

    Swift

    class func predicateForObjectsFromWorkout(_ workout: HKWorkout!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForObjectsFromWorkout:(HKWorkout *)workout

    Параметры

    workout

    Проверка Вы ищете.

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

    Предикат, соответствующий любые объекты, добавленные к предоставленной проверке.

    Обсуждение

    Используйте этот удобный метод создать предикат, соответствующий все объекты HealthKit для данной проверки. Перечисление 12 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Перечисление 12Matching все выборки связалось с предоставленной проверкой

    Swift

    • let workoutObjects = HKQuery.predicateForObjectsFromWorkout(workout)
    • let explicitWorkoutObjects =
    • NSPredicate(format: "%K == %@", HKPredicateKeyPathWorkout, workout)

    Objective C

    • NSPredicate *workoutObjects = [HKQuery predicateForObjectsFromWorkout:workout];
    • NSPredicate *explicitWorkoutObjects =
    • [NSPredicate predicateWithFormat:@"%K == %@",
    • HKPredicateKeyPathWorkout,
    • workout];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат для соответствия проверок на основе их продолжительности.

    Объявление

    Swift

    class func predicateForWorkoutsWithOperatorType(_ operatorType: NSPredicateOperatorType, duration duration: NSTimeInterval) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)operatorType duration:(NSTimeInterval)duration

    Параметры

    operatorType

    Тип оператора для использования при сравнении продолжительности.

    duration

    Целевая продолжительность.

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

    Предикат для соответствия проверок на основе их продолжительности. Этот предикат работает только над проверками.

    Обсуждение

    Используйте этот удобный метод создать предикат, соответствующий против продолжительности проверки. Перечисление 13 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.

    Проверки перечисления 13Matching на основе их продолжительности

    Swift

    • // Predicate matching workouts equal to or longer than 30 minutes
    • let workout = HKQuery.predicateForWorkoutsWithOperatorType(
    • .GreaterThanOrEqualToPredicateOperatorType,
    • duration: 60.0 * 30.0)
    • let explicitWorkout = NSPredicate(format: "%K >= %d",
    • HKPredicateKeyPathWorkoutDuration, 60 * 30)

    Objective C

    • // Predicate matching workouts equal to or longer than 30 minutes
    • NSPredicate *workout =
    • [HKQuery predicateForWorkoutsWithOperatorType:
    • NSGreaterThanOrEqualToPredicateOperatorType
    • duration:60.0 * 30.0];
    • NSPredicate *explicitWorkout =
    • [NSPredicate predicateWithFormat:@"%K >= %d",
    • HKPredicateKeyPathWorkoutDuration,
    • 60 * 30];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращается предикат для соответствия проверок на основе общего расстояния переместился.

    Объявление

    Swift

    class func predicateForWorkoutsWithOperatorType(_ operatorType: NSPredicateOperatorType, totalDistance totalDistance: HKQuantity!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)operatorType totalDistance:(HKQuantity *)totalDistance

    Параметры

    operatorType

    Тип оператора для использования при сравнении общего расстояния.

    totalDistance

    Целевое расстояние.

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

    Предикат для соответствия проверок на основе общего расстояния переместился. Этот предикат работает только над проверками.

    Обсуждение

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

    Проверки перечисления 14Matching на основе общего расстояния переместились

    Swift

    • // Predicate matching workouts covering 6.5 miles or more.
    • let distance = HKQuantity(unit: HKUnit.mileUnit(), doubleValue: 6.5)
    • let workout = HKQuery.predicateForWorkoutsWithOperatorType(
    • .GreaterThanOrEqualToPredicateOperatorType,
    • totalDistance: distance)
    • let explicitWorkout = NSPredicate(format: "%K >= %@",
    • HKPredicateKeyPathWorkoutTotalDistance, distance)

    Objective C

    • // Predicate matching workouts covering 6.5 miles or more.
    • HKQuantity *distance =
    • [HKQuantity quantityWithUnit:[HKUnit mileUnit] doubleValue:6.5];
    • NSPredicate *workout =
    • [HKQuery predicateForWorkoutsWithOperatorType:
    • NSGreaterThanOrEqualToPredicateOperatorType
    • totalDistance:distance];
    • NSPredicate *explicitWorkout =
    • [NSPredicate predicateWithFormat:@"%K >= %@",
    • HKPredicateKeyPathWorkoutTotalDistance,
    • distance];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат для соответствия проверок на основе записанной полной энергии.

    Объявление

    Swift

    class func predicateForWorkoutsWithOperatorType(_ operatorType: NSPredicateOperatorType, totalEnergyBurned totalEnergyBurned: HKQuantity!) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)operatorType totalEnergyBurned:(HKQuantity *)totalEnergyBurned

    Параметры

    operatorType

    Тип оператора для использования при сравнении полной энергии горел.

    totalEnergyBurned

    Целевая сумма энергии горела.

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

    Предикат для соответствия проверок на основе полной энергии горел. Этот предикат работает только над проверками.

    Обсуждение

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

    Проверки перечисления 15Matching на основе полной энергии горели

    Swift

    • // Predicate matching workouts burning 500 calories or more
    • let energyBurned = HKQuantity(unit: HKUnit.kilocalorieUnit(), doubleValue: 500)
    • let workout = HKQuery.predicateForWorkoutsWithOperatorType(
    • .GreaterThanOrEqualToPredicateOperatorType,
    • totalEnergyBurned: energyBurned)
    • let explicitWorkout = NSPredicate(format: "%K >= %@",
    • HKPredicateKeyPathWorkoutTotalEnergyBurned, energyBurned)

    Objective C

    • // Predicate matching workouts burning 500 calories or more
    • HKQuantity *energyBurned =
    • [HKQuantity quantityWithUnit:[HKUnit kilocalorieUnit] doubleValue:500];
    • NSPredicate *workout =
    • [HKQuery predicateForWorkoutsWithOperatorType:
    • NSGreaterThanOrEqualToPredicateOperatorType
    • totalEnergyBurned:energyBurned];
    • NSPredicate *explicitWorkout =
    • [NSPredicate predicateWithFormat:@"%K >= %@",
    • HKPredicateKeyPathWorkoutTotalEnergyBurned,
    • energyBurned];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

  • Возвращает предикат для соответствия проверок на основе типа действия.

    Объявление

    Swift

    class func predicateForWorkoutsWithWorkoutActivityType(_ workoutActivityType: HKWorkoutActivityType) -> NSPredicate!

    Objective C

    + (NSPredicate *)predicateForWorkoutsWithWorkoutActivityType:(HKWorkoutActivityType)workoutActivityType

    Параметры

    workoutActivityType

    Тип действия. Для списка допустимых действий проверки посмотрите HKWorkoutActivityType.

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

    Предикат для соответствия проверок на основе типа действия.

    Обсуждение

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

    Проверки перечисления 16Matching на основе типа действия

    Swift

    • let workout = HKQuery.predicateForWorkoutsWithWorkoutActivityType(.Curling)
    • let explicitWorkout = NSPredicate(format: "%K == %d",
    • HKPredicateKeyPathWorkoutType,
    • HKWorkoutActivityType.Curling.toRaw())

    Objective C

    • NSPredicate *workout =
    • [HKQuery predicateForWorkoutsWithWorkoutActivityType:
    • HKWorkoutActivityTypeCurling];
    • NSPredicate *explicitWorkout =
    • [NSPredicate predicateWithFormat:@"%K == %d",
    • HKPredicateKeyPathWorkoutType,
    • HKWorkoutActivityTypeCurling];

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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

    См. также

    workoutActivityType

  • Константы, описывающие, как период времени выборки накладывается с целевым периодом времени.

    Объявление

    Swift

    struct HKQueryOptions : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var None: HKQueryOptions { get } static var StrictStartDate: HKQueryOptions { get } static var StrictEndDate: HKQueryOptions { get } }

    Objective C

    typedef enum : NSUInteger { HKQueryOptionNone = 0, HKQueryOptionStrictStartDate = 1 << 0, HKQueryOptionStrictEndDate = 1 << 1, } HKQueryOptions;

    Константы

    • None

      HKQueryOptionNone

      Период времени выборки должен полностью перекрыть целевой период времени.

      Время начала выборки должно быть равно или позже, чем время начала цели, и время окончания выборки должно быть ранее, чем время окончания цели.

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

    • StrictStartDate

      HKQueryOptionStrictStartDate

      Время начала выборки должно находиться в пределах целевого периода времени.

      Время начала выборки должно быть равно или позже, чем время начала цели, и время начала выборки должно также быть ранее, чем время окончания цели.

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

    • StrictEndDate

      HKQueryOptionStrictEndDate

      Время окончания выборки должно находиться в пределах целевого периода времени.

      Время окончания выборки должно быть равно или позже, чем время начала цели, и время окончания выборки должно также быть ранее, чем время окончания цели.

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

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

    Objective C

    @import HealthKit;

    Swift

    import HealthKit

    Доступность

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