HKCorrelation
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import HealthKit
Objective C
@import HealthKit;
Доступность
Доступный в iOS 8.0 и позже.
HKCorrelation класс является конкретным подклассом HKSample класс. HealthKit использует корреляции для группировки многократных выборок в единственный ввод данных. iOS 8.0 предоставляет поддержку для использования типов корреляции для представления и кровяного давления и еды. Корреляции кровяного давления всегда включают две выборки количества, представляющие систолические и диастолические значения. Напротив, продовольственные корреляции могут содержать широкий диапазон диетической информации о еде, включая информацию о жире, протеине, углеводах, энергии и использованных витаминах.
Корреляции являются неизменными: свойства корреляции установлены, когда объект сначала создается, и они не могут измениться.
Разделение на подклассы примечаний
Как много классов HealthKit, HKCorrelation класс не должен быть разделен на подклассы. Можно расширить класс корреляции путем добавления метаданных с пользовательскими ключами как подходящих для приложения. Для получения дополнительной информации посмотрите quantitySampleWithType:quantity:startDate:endDate:metadata: метод.
-
Инстанцирует и возвращает новый экземпляр корреляции.
Объявление
Swift
convenience init!(typecorrelationType: HKCorrelationType!, startDatestartDate: NSDate!, endDateendDate: NSDate!, objectsobjects: Set<NSObject>!)Objective C
+ (instancetype)correlationWithType:(HKCorrelationType *)correlationTypestartDate:(NSDate *)startDateendDate:(NSDate *)endDateobjects:(NSSet *)objectsПараметры
correlationTypeТип для этой корреляции.
startDateДата начала выборки. Эта дата должна быть равна или ранее, чем дата окончания; иначе, этот метод выдает исключение (
NSInvalidArgumentException).endDateДата окончания выборки. Эта дата должна быть равна или позже, чем дата начала; иначе, этот метод выдает исключение (
NSInvalidArgumentException).objectsРяд
HKSampleобъекты. В частности этот набор содержит количество и выборки категории, сгруппированные в эту корреляцию.Возвращаемое значение
Новый экземпляр корреляции без любых метаданных.
Обсуждение
HealthKit использует корреляции для представления составных выборок данных — т.е. выборки, требующие больше, чем единственное значение. Для создания выборки корреляции Вы сначала создаете соответствующий тип корреляции. Затем, Вы устанавливаете его запуск и даты окончания. Наконец, Вы создаете набор, содержащий все количество и выборки категории, которые Вы намереваетесь объединить в эту корреляцию. Таким образом Вы производите новую выборку количества без любых метаданных.
Swift
let date = NSDate()// Create systolic samplelet systolicType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBloodPressureSystolic)let systolicQuantity =HKQuantity(unit: HKUnit.millimeterOfMercuryUnit(), doubleValue: 120.0)let systolicSample = HKQuantitySample(type: systolicType,quantity: systolicQuantity, startDate: date, endDate: date)// Create diastolic samplelet diastolicType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBloodPressureDiastolic)let diastolicQuantity =HKQuantity(unit: HKUnit.millimeterOfMercuryUnit(), doubleValue: 75.0)let diastolicSample = HKQuantitySample(type: diastolicType,quantity: diastolicQuantity, startDate: date, endDate: date)// Create blood pressure samplelet bloodPressureType = HKObjectType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierBloodPressure)let objects = NSSet(objects: systolicSample, diastolicSample)let bloodpressure = HKCorrelation(type: bloodPressureType,startDate: date, endDate: date, objects:objects)
Objective C
NSDate *date = [NSDate date];// Create systolic sampleHKQuantityType *systolicType =[HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBloodPressureSystolic];HKQuantity *systolicQuantity =[HKQuantity quantityWithUnit:[HKUnit millimeterOfMercuryUnit]doubleValue:120.0];HKQuantitySample *systolicSample =[HKQuantitySample quantitySampleWithType:systolicTypequantity:systolicQuantitystartDate:dateendDate:date];// Create diastolic sampleHKQuantityType *diastolicType =[HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBloodPressureDiastolic];HKQuantity *diastolicQuantity =[HKQuantity quantityWithUnit:[HKUnit millimeterOfMercuryUnit]doubleValue:75.0];HKQuantitySample *diastolicSample =[HKQuantitySample quantitySampleWithType:diastolicTypequantity:diastolicQuantitystartDate:dateendDate:date];// Create blood pressure sampleHKCorrelationType *bloodPressureType =[HKObjectType correlationTypeForIdentifier:HKCorrelationTypeIdentifierBloodPressure];NSSet *objects = [NSSet setWithObjects:systolicSample, diastolicSample, nil];HKCorrelation *bloodPressure =[HKCorrelation correlationWithType:bloodPressureTypestartDate:dateendDate:dateobjects:objects];
Оператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
-
init (type:startDate:endDate:objects:metadata:) + correlationWithType:startDate:endDate:objects:metadata:Инстанцирует и возвращает новый экземпляр корреляции с предоставленными метаданными.
Объявление
Swift
convenience init!(typecorrelationType: HKCorrelationType!, startDatestartDate: NSDate!, endDateendDate: NSDate!, objectsobjects: Set<NSObject>!, metadatametadata: [NSObject : AnyObject]!)Objective C
+ (instancetype)correlationWithType:(HKCorrelationType *)correlationTypestartDate:(NSDate *)startDateendDate:(NSDate *)endDateobjects:(NSSet *)objectsmetadata:(NSDictionary *)metadataПараметры
correlationTypeТип для этой корреляции.
startDateДата начала выборки. Эта дата должна быть равна или ранее, чем дата окончания; иначе, этот метод выдает исключение (
NSInvalidArgumentException).endDateДата окончания выборки. Эта дата должна быть равна или позже, чем дата начала; иначе, этот метод выдает исключение (
NSInvalidArgumentException).objectsРяд
HKSampleобъекты. В частности этот набор содержит количество и выборки категории, сгруппированные в эту корреляцию.metadataСловарь метаданных, содержащий дополнительную информацию, описывающую эту корреляцию. Ключи словаря - все
NSStringобъекты. Значения могут бытьNSString,NSNumber, илиNSDateобъекты. Для полного списка предопределенных ключей метаданных посмотрите Ключи Метаданных.Используя предопределенные ключи помогает упростить совместное использование данных между приложениями; однако, Вы также призваны создать свои собственные, пользовательские ключи по мере необходимости для расширения возможностей выборки количества HealthKit.
При создании корреляций, представляющих еду, всегда используйте
HKMetadataKeyFoodTypeключ для обеспечения имени еды.Возвращаемое значение
Новый экземпляр корреляции с предоставленными метаданными.
Обсуждение
HealthKit использует корреляции для представления составных выборок данных — т.е. выборки, требующие больше, чем единственное значение. Для создания выборки корреляции Вы сначала создаете соответствующий тип корреляции. Затем, Вы устанавливаете его запуск и даты окончания. Также необходимо создать набор, содержащий все количество и выборки категории, которые Вы намереваетесь объединить в эту корреляцию. Наконец, Вы устанавливаете метаданные. Таким образом Вы производите новую выборку количества с предоставленными метаданными.
Swift
let date = NSDate();// Create a sample for calorieslet calorieType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryEnergyConsumed)let calorieQuantity =HKQuantity(unit: HKUnit.kilocalorieUnit(), doubleValue: 110.0)let calorieSample = HKQuantitySample(type: calorieType,quantity: calorieQuantity, startDate: date, endDate: date)// Create a sample for total fatlet fatType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryFatTotal)let fatQuantity =HKQuantity(unit: HKUnit.gramUnit(), doubleValue: 0.0)let fatSample = HKQuantitySample(type: fatType,quantity: fatQuantity, startDate: date, endDate: date)// Create a sample for carbohydrateslet carbohydratesType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryCarbohydrates)let carbohydratesQuantity =HKQuantity(unit: HKUnit.gramUnit(), doubleValue: 30.0)let carbohydratesSample = HKQuantitySample(type: carbohydratesType,quantity: carbohydratesQuantity, startDate: date, endDate: date)// Create a sample for proteinlet proteinType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryProtein)let proteinQuantity =HKQuantity(unit: HKUnit.gramUnit(), doubleValue: 1.0)let proteinSample = HKQuantitySample(type: proteinType,quantity: proteinQuantity, startDate: date, endDate: date)// Create the food samplelet objects =NSSet(objects: calorieSample, fatSample, carbohydratesSample, proteinSample)let metadata = [HKMetadataKeyFoodType: "Banana"]let bananaType = HKObjectType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierFood)let banana = HKCorrelation(type: bananaType,startDate: date, endDate: date, objects: objects, metadata:metadata)
Objective C
NSDate *date = [NSDate date];// Create sample for caloriesHKQuantityType *calorieType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierDietaryEnergyConsumed];HKQuantity *calorieQuantity =[HKQuantity quantityWithUnit:[HKUnit kilocalorieUnit] doubleValue:110.0];HKQuantitySample *calorieSample =[HKQuantitySample quantitySampleWithType:calorieTypequantity:calorieQuantitystartDate:dateendDate:date];// Create sample for total fatHKQuantityType *fatType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierDietaryFatTotal];HKQuantity *fatQuantity =[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:0.0];HKQuantitySample *fatSample =[HKQuantitySample quantitySampleWithType:fatTypequantity:fatQuantitystartDate:dateendDate:date];// Create sample for carbohydratesHKQuantityType *carbohydratesType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierDietaryCarbohydrates];HKQuantity *carbohydratesQuantity =[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:30.0];HKQuantitySample *carbohydratesSample =[HKQuantitySample quantitySampleWithType:carbohydratesTypequantity:carbohydratesQuantitystartDate:dateendDate:date];// Create sample for proteinHKQuantityType *proteinType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierDietaryProtein];HKQuantity *proteinQuantity =[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:30.0];HKQuantitySample *proteinSample =[HKQuantitySample quantitySampleWithType:proteinTypequantity:proteinQuantitystartDate:dateendDate:date];// Create food sampleNSSet *objects = [NSSet setWithObjects:calorieSample, fatSample,carbohydratesSample, proteinSample, nil];NSDictionary *metadata = @{HKMetadataKeyFoodType: @"Banana"};HKCorrelationType *bananaType = [HKObjectType correlationTypeForIdentifier:HKCorrelationTypeIdentifierFood];HKSample *banana = [HKCorrelation correlationWithType:bananaTypestartDate:dateendDate:dateobjects:objects metadata:metadata];
Оператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
-
correlationTypeСвойствоТип для этой корреляции. (только для чтения)
Объявление
Swift
var correlationType: HKCorrelationType! { get }Objective C
@property(readonly) HKCorrelationType *correlationTypeОператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
-
objectsСвойствоНабор
HKSampleобъекты, составляющие корреляцию. (только для чтения)Объявление
Swift
var objects: Set<NSObject>! { get }Objective C
@property(readonly, copy) NSSet *objectsОбсуждение
Это свойство содержит количество и выборки категории, сгруппированные в эту корреляцию. Корреляции кровяного давления всегда включают две выборки количества, представляющие систолические и диастолические значения. Напротив, продовольственные корреляции могут содержать широкий диапазон диетической информации о еде, включая информацию о жире, протеине, углеводах, энергии и использованных витаминах.
Оператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
-
Возвращает набор, содержащий все объекты указанного типа в корреляции.
Объявление
Swift
func objectsForType(_objectType: HKObjectType!) -> Set<NSObject>!Objective C
- (NSSet *)objectsForType:(HKObjectType *)objectTypeПараметры
objectTypeКоличество или категория вводят для данных, хранивших в корреляции.
Возвращаемое значение
Набор, содержащий все объекты указанного типа в корреляции.
Оператор импорта
Objective C
@import HealthKit;Swift
import HealthKitДоступность
Доступный в iOS 8.0 и позже.
