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!(type
correlationType
: HKCorrelationType!, startDatestartDate
: NSDate!, endDateendDate
: NSDate!, objectsobjects
: Set<NSObject>!)Objective C
+ (instancetype)correlationWithType:(HKCorrelationType *)
correlationType
startDate:(NSDate *)startDate
endDate:(NSDate *)endDate
objects:(NSSet *)objects
Параметры
correlationType
Тип для этой корреляции.
startDate
Дата начала выборки. Эта дата должна быть равна или ранее, чем дата окончания; иначе, этот метод выдает исключение (
NSInvalidArgumentException
).endDate
Дата окончания выборки. Эта дата должна быть равна или позже, чем дата начала; иначе, этот метод выдает исключение (
NSInvalidArgumentException
).objects
Ряд
HKSample
объекты. В частности этот набор содержит количество и выборки категории, сгруппированные в эту корреляцию.Возвращаемое значение
Новый экземпляр корреляции без любых метаданных.
Обсуждение
HealthKit использует корреляции для представления составных выборок данных — т.е. выборки, требующие больше, чем единственное значение. Для создания выборки корреляции Вы сначала создаете соответствующий тип корреляции. Затем, Вы устанавливаете его запуск и даты окончания. Наконец, Вы создаете набор, содержащий все количество и выборки категории, которые Вы намереваетесь объединить в эту корреляцию. Таким образом Вы производите новую выборку количества без любых метаданных.
Swift
let date = NSDate()
// Create systolic sample
let 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 sample
let 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 sample
let 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 sample
HKQuantityType *systolicType =
[HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierBloodPressureSystolic];
HKQuantity *systolicQuantity =
[HKQuantity quantityWithUnit:[HKUnit millimeterOfMercuryUnit]
doubleValue:120.0];
HKQuantitySample *systolicSample =
[HKQuantitySample quantitySampleWithType:systolicType
quantity:systolicQuantity
startDate:date
endDate:date];
// Create diastolic sample
HKQuantityType *diastolicType =
[HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierBloodPressureDiastolic];
HKQuantity *diastolicQuantity =
[HKQuantity quantityWithUnit:[HKUnit millimeterOfMercuryUnit]
doubleValue:75.0];
HKQuantitySample *diastolicSample =
[HKQuantitySample quantitySampleWithType:diastolicType
quantity:diastolicQuantity
startDate:date
endDate:date];
// Create blood pressure sample
HKCorrelationType *bloodPressureType =
[HKObjectType correlationTypeForIdentifier:
HKCorrelationTypeIdentifierBloodPressure];
NSSet *objects = [NSSet setWithObjects:systolicSample, diastolicSample, nil];
HKCorrelation *bloodPressure =
[HKCorrelation correlationWithType:bloodPressureType
startDate:date
endDate:date
objects: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!(type
correlationType
: HKCorrelationType!, startDatestartDate
: NSDate!, endDateendDate
: NSDate!, objectsobjects
: Set<NSObject>!, metadatametadata
: [NSObject : AnyObject]!)Objective C
+ (instancetype)correlationWithType:(HKCorrelationType *)
correlationType
startDate:(NSDate *)startDate
endDate:(NSDate *)endDate
objects:(NSSet *)objects
metadata:(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 calories
let 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 fat
let 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 carbohydrates
let 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 protein
let 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 sample
let 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 calories
HKQuantityType *calorieType = [HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierDietaryEnergyConsumed];
HKQuantity *calorieQuantity =
[HKQuantity quantityWithUnit:[HKUnit kilocalorieUnit] doubleValue:110.0];
HKQuantitySample *calorieSample =
[HKQuantitySample quantitySampleWithType:calorieType
quantity:calorieQuantity
startDate:date
endDate:date];
// Create sample for total fat
HKQuantityType *fatType = [HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierDietaryFatTotal];
HKQuantity *fatQuantity =
[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:0.0];
HKQuantitySample *fatSample =
[HKQuantitySample quantitySampleWithType:fatType
quantity:fatQuantity
startDate:date
endDate:date];
// Create sample for carbohydrates
HKQuantityType *carbohydratesType = [HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierDietaryCarbohydrates];
HKQuantity *carbohydratesQuantity =
[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:30.0];
HKQuantitySample *carbohydratesSample =
[HKQuantitySample quantitySampleWithType:carbohydratesType
quantity:carbohydratesQuantity
startDate:date
endDate:date];
// Create sample for protein
HKQuantityType *proteinType = [HKObjectType quantityTypeForIdentifier:
HKQuantityTypeIdentifierDietaryProtein];
HKQuantity *proteinQuantity =
[HKQuantity quantityWithUnit:[HKUnit gramUnit] doubleValue:30.0];
HKQuantitySample *proteinSample =
[HKQuantitySample quantitySampleWithType:proteinType
quantity:proteinQuantity
startDate:date
endDate:date];
// Create food sample
NSSet *objects = [NSSet setWithObjects:calorieSample, fatSample,
carbohydratesSample, proteinSample, nil];
NSDictionary *metadata = @{HKMetadataKeyFoodType: @"Banana"};
HKCorrelationType *bananaType = [HKObjectType correlationTypeForIdentifier:
HKCorrelationTypeIdentifierFood];
HKSample *banana = [HKCorrelation correlationWithType:bananaType
startDate:date
endDate:date
objects: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 и позже.