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 на базовом хранилище. Это имеет два важных побочных эффекта.
Предикаты улучшают производительность Вашего запроса, и с точки зрения скорости и с точки зрения использования памяти. Поскольку предикат выполняется хранилищем, он ограничивает число объектов HealthKit, которые инстанцируют и возвращают.
Так как предикаты выполняются хранилищем, Вы ограничиваетесь в типе предикатов, которые можно использовать. В частности 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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
Возвращает предикат, соответствующий объекты указанному UUIDs.
Объявление
Swift
class func predicateForObjectsWithUUIDs(_
UUIDs
: Set<NSObject>!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForObjectsWithUUIDs:(NSSet *)
UUIDs
Параметры
UUIDs
Набор UUIDs, который будет соответствующим.
Возвращаемое значение
Предикат, соответствующий указанные объекты на основе их UUIDs.
Обсуждение
Используйте этот удобный метод создать предикат, проверяющий UUID объекта по ряду UUIDs. Перечисление 2 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
Возвращает предикат, соответствующий все объекты, создававшиеся предоставленным источником.
Объявление
Swift
class func predicateForObjectsFromSource(_
source
: HKSource!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForObjectsFromSource:(HKSource *)
source
Параметры
source
Приложение или устройство, сохранившее данные в хранилище HealthKit.
Возвращаемое значение
Предикат, соответствующий все объекты, создаваемые предоставленным источником.
Обсуждение
Используйте этот удобный метод создать предикат, находящий все объекты из определенного приложения или устройства. Перечисление 3 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
predicateForObjectsWithMetadataKey (_: allowedValues:) + predicateForObjectsWithMetadataKey:allowedValues:
Возвращает предикат, соответствующий объекты на основе предоставленного ключа метаданных и массива целевых значений.
Объявление
Swift
class func predicateForObjectsWithMetadataKey(_
key
: String!, allowedValuesallowedValues
: [AnyObject]!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)
key
allowedValues:(NSArray *)allowedValues
Параметры
key
Ключ метаданных для значения, которое будет соответствующим. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать использующие пользовательские ключи.
allowedValues
Возвращаемое значение
Предикат, соответствующий объекты на основе предоставленного ключа метаданных и массива целевых значений..
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий объекты на основе их метаданных. Когда этот предикат оценен, это получает значение метаданных для предоставленного ключа. Тогда предикат проверяет то значение по
allowedValues
массив. Если массив содержит совпадающее значение, возвраты предикатаYES
true
; иначе, это возвращаетсяNO
false
.Перечисление 6 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
predicateForObjectsWithMetadataKey (_: operatorType:value:) + predicateForObjectsWithMetadataKey:operatorType:value:
Возвращает предикат, соответствующий любой объект, метаданные которого содержат предоставленный ключ, и значение метаданных для ключа соответствует предоставленное значение с помощью предоставленного оператора.
Объявление
Swift
class func predicateForObjectsWithMetadataKey(_
key
: String!, operatorTypeoperatorType
: NSPredicateOperatorType, valuevalue
: AnyObject!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)
key
operatorType:(NSPredicateOperatorType)operatorType
value:(id)value
Параметры
key
Ключ метаданных для значения, которое будет соответствующим. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать использующие пользовательские ключи.
operatorType
Определяет отношение, используемое для соответствия значения метаданных предоставленному значению.
value
Целевое значение.
Возвращаемое значение
Предикат, соответствующий объекты на основе указанного ключа метаданных, оператора и значения.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий объекты на основе их метаданных, оператора и целевого значения. Когда этот предикат оценен, это получает значение метаданных для предоставленного ключа. Тогда предикат сравнивает то значение с целевым значением с помощью предоставленного оператора.
Перечисление 7 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
-
predicateForSamplesWithStartDate (_: endDate:options:) + predicateForSamplesWithStartDate:endDate:options:
Возвращает предикат для выборок, чьи запускаются, и даты окончания находятся в пределах интервала требуемого времени.
Объявление
Swift
class func predicateForSamplesWithStartDate(_
startDate
: NSDate!, endDateendDate
: NSDate!, optionsoptions
: HKQueryOptions) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForSamplesWithStartDate:(NSDate *)
startDate
endDate:(NSDate *)endDate
options:(HKQueryOptions)options
Параметры
startDate
Дата начала целевого временного интервала.
endDate
Дата окончания целевого временного интервала.
options
Константа, указывающая, как запуск выборки и дата окончания по сравнению с целевым временным интервалом. Для списка возможных значений посмотрите
HKQueryOptions
.Возвращаемое значение
Предикат для выборок, чьи запускаются и даты окончания, находится в пределах интервала требуемого времени. Этот предикат работает только с выборками.
Обсуждение
Используйте этот удобный метод создать предикат, сравнивающий запуск выборки и даты окончания с интервалом требуемого времени. Перечисление 9 и удобный метод и строка формата предиката для создания эквивалентных предикатов.
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 и позже.
-
predicateForQuantitySamplesWithOperatorType (_: количество:) + predicateForQuantitySamplesWithOperatorType:quantity:
Возвращает свойство, соответствующее выборки на основе целевого количества.
Объявление
Swift
class func predicateForQuantitySamplesWithOperatorType(_
operatorType
: NSPredicateOperatorType, quantityquantity
: HKQuantity!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForQuantitySamplesWithOperatorType:(NSPredicateOperatorType)
operatorType
quantity:(HKQuantity *)quantity
Параметры
operatorType
Тип оператора для использования при сравнении количества выборки с целевым количеством.
quantity
Целевое количество.
Возвращаемое значение
Свойство, соответствующее выборки на основе целевого количества. Этот предикат работает только над выборками количества.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против количества выборки. Перечисление 10 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
predicateForCategorySamplesWithOperatorType (_: значение:) + predicateForCategorySamplesWithOperatorType:value:
Возвращает предикат, проверяющий значение выборки категории.
Объявление
Swift
class func predicateForCategorySamplesWithOperatorType(_
operatorType
: NSPredicateOperatorType, valuevalue
: Int) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForCategorySamplesWithOperatorType:(NSPredicateOperatorType)
operatorType
value:(NSInteger)value
Параметры
operatorType
Тип работы для выполнения при соответствии значения выборки категории против целевого значения.
value
Целевое значение выборки категории.
Возвращаемое значение
Предикат, соответствующий выборки категории на основе предоставленного выражения. Этот предикат работает только с выборками категории.
Обсуждение
Используйте этот удобный метод создать предикат, проверяющий значение выборки категории. Перечисление 11 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
predicateForWorkoutsWithOperatorType (_: продолжительность:) + predicateForWorkoutsWithOperatorType:duration:
Возвращает предикат для соответствия проверок на основе их продолжительности.
Объявление
Swift
class func predicateForWorkoutsWithOperatorType(_
operatorType
: NSPredicateOperatorType, durationduration
: NSTimeInterval) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)
operatorType
duration:(NSTimeInterval)duration
Параметры
operatorType
Тип оператора для использования при сравнении продолжительности.
duration
Целевая продолжительность.
Возвращаемое значение
Предикат для соответствия проверок на основе их продолжительности. Этот предикат работает только над проверками.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против продолжительности проверки. Перечисление 13 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
-
predicateForWorkoutsWithOperatorType (_: totalDistance:) + predicateForWorkoutsWithOperatorType:totalDistance:
Возвращается предикат для соответствия проверок на основе общего расстояния переместился.
Объявление
Swift
class func predicateForWorkoutsWithOperatorType(_
operatorType
: NSPredicateOperatorType, totalDistancetotalDistance
: HKQuantity!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)
operatorType
totalDistance:(HKQuantity *)totalDistance
Параметры
operatorType
Тип оператора для использования при сравнении общего расстояния.
totalDistance
Целевое расстояние.
Возвращаемое значение
Предикат для соответствия проверок на основе общего расстояния переместился. Этот предикат работает только над проверками.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против общего расстояния проверки. Перечисление 14 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
-
predicateForWorkoutsWithOperatorType (_: totalEnergyBurned:) + predicateForWorkoutsWithOperatorType:totalEnergyBurned:
Возвращает предикат для соответствия проверок на основе записанной полной энергии.
Объявление
Swift
class func predicateForWorkoutsWithOperatorType(_
operatorType
: NSPredicateOperatorType, totalEnergyBurnedtotalEnergyBurned
: HKQuantity!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)
operatorType
totalEnergyBurned:(HKQuantity *)totalEnergyBurned
Параметры
operatorType
Тип оператора для использования при сравнении полной энергии горел.
totalEnergyBurned
Целевая сумма энергии горела.
Возвращаемое значение
Предикат для соответствия проверок на основе полной энергии горел. Этот предикат работает только над проверками.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против записанной полной энергии проверки. Перечисление 14 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
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 и позже.
См. также
-
Константы, описывающие, как период времени выборки накладывается с целевым периодом времени.
Объявление
Swift
struct HKQueryOptions : RawOptionSetType { init(_
rawValue
: UInt) init(rawValuerawValue
: 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 и позже.
-