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 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
Перечисление 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 и позже.
См. также
-
Возвращает предикат, соответствующий объекты указанному 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 и позже.
См. также
-
Возвращает предикат, соответствующий все объекты, создававшиеся предоставленным источником.
Объявление
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 и позже.
См. также
-
predicateForObjectsWithMetadataKey (_: allowedValues:) + predicateForObjectsWithMetadataKey:allowedValues:Возвращает предикат, соответствующий объекты на основе предоставленного ключа метаданных и массива целевых значений.
Объявление
Swift
class func predicateForObjectsWithMetadataKey(_key: String!, allowedValuesallowedValues: [AnyObject]!) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForObjectsWithMetadataKey:(NSString *)keyallowedValues:(NSArray *)allowedValuesПараметры
keyКлюч метаданных для значения, которое будет соответствующим. Для списка предварительно установленных ключей посмотрите Ключи Метаданных. Можно также искать использующие пользовательские ключи.
allowedValuesВозвращаемое значение
Предикат, соответствующий объекты на основе предоставленного ключа метаданных и массива целевых значений..
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий объекты на основе их метаданных. Когда этот предикат оценен, это получает значение метаданных для предоставленного ключа. Тогда предикат проверяет то значение по
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:HKMetadataKeyFoodTypeallowedValues:@[@"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 *)keyoperatorType:(NSPredicateOperatorType)operatorTypevalue:(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:AccuracyCustomMetadataKeyoperatorType:NSGreaterThanPredicateOperatorTypevalue:@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 и позже.
-
predicateForSamplesWithStartDate (_: endDate:options:) + predicateForSamplesWithStartDate:endDate:options:Возвращает предикат для выборок, чьи запускаются, и даты окончания находятся в пределах интервала требуемого времени.
Объявление
Swift
class func predicateForSamplesWithStartDate(_startDate: NSDate!, endDateendDate: NSDate!, optionsoptions: HKQueryOptions) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForSamplesWithStartDate:(NSDate *)startDateendDate:(NSDate *)endDateoptions:(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:myStartDateendDate:myEndDateoptions: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)operatorTypequantity:(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:NSLessThanOrEqualToPredicateOperatorTypequantity: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)operatorTypevalue:(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 =[HKQuerypredicateForCategorySamplesWithOperatorType:NSEqualToPredicateOperatorTypevalue: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 и позже.
См. также
-
predicateForWorkoutsWithOperatorType (_: продолжительность:) + predicateForWorkoutsWithOperatorType:duration:Возвращает предикат для соответствия проверок на основе их продолжительности.
Объявление
Swift
class func predicateForWorkoutsWithOperatorType(_operatorType: NSPredicateOperatorType, durationduration: NSTimeInterval) -> NSPredicate!Objective C
+ (NSPredicate *)predicateForWorkoutsWithOperatorType:(NSPredicateOperatorType)operatorTypeduration:(NSTimeInterval)durationПараметры
operatorTypeТип оператора для использования при сравнении продолжительности.
durationЦелевая продолжительность.
Возвращаемое значение
Предикат для соответствия проверок на основе их продолжительности. Этот предикат работает только над проверками.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против продолжительности проверки. Перечисление 13 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
Проверки перечисления 13Matching на основе их продолжительности Swift
// Predicate matching workouts equal to or longer than 30 minuteslet 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 minutesNSPredicate *workout =[HKQuery predicateForWorkoutsWithOperatorType:NSGreaterThanOrEqualToPredicateOperatorTypeduration: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)operatorTypetotalDistance:(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:NSGreaterThanOrEqualToPredicateOperatorTypetotalDistance: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)operatorTypetotalEnergyBurned:(HKQuantity *)totalEnergyBurnedПараметры
operatorTypeТип оператора для использования при сравнении полной энергии горел.
totalEnergyBurnedЦелевая сумма энергии горела.
Возвращаемое значение
Предикат для соответствия проверок на основе полной энергии горел. Этот предикат работает только над проверками.
Обсуждение
Используйте этот удобный метод создать предикат, соответствующий против записанной полной энергии проверки. Перечисление 14 использует и удобный метод и строку формата предиката для создания эквивалентных предикатов.
Проверки перечисления 15Matching на основе полной энергии горели Swift
// Predicate matching workouts burning 500 calories or morelet 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 moreHKQuantity *energyBurned =[HKQuantity quantityWithUnit:[HKUnit kilocalorieUnit] doubleValue:500];NSPredicate *workout =[HKQuery predicateForWorkoutsWithOperatorType:NSGreaterThanOrEqualToPredicateOperatorTypetotalEnergyBurned: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 и позже.
См. также
-
Константы, описывающие, как период времени выборки накладывается с целевым периодом времени.
Объявление
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;Константы
-
NoneHKQueryOptionNoneПериод времени выборки должен полностью перекрыть целевой период времени.
Время начала выборки должно быть равно или позже, чем время начала цели, и время окончания выборки должно быть ранее, чем время окончания цели.
Доступный в iOS 8.0 и позже.
-
StrictStartDateHKQueryOptionStrictStartDateВремя начала выборки должно находиться в пределах целевого периода времени.
Время начала выборки должно быть равно или позже, чем время начала цели, и время начала выборки должно также быть ранее, чем время окончания цели.
Доступный в iOS 8.0 и позже.
-
StrictEndDateHKQueryOptionStrictEndDateВремя окончания выборки должно находиться в пределах целевого периода времени.
Время окончания выборки должно быть равно или позже, чем время начала цели, и время окончания выборки должно также быть ранее, чем время окончания цели.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
-
