从 HealthKit 获取 HKQuantitySample -> heartRateSample (Watch OS2) 的日期/时间

Posted

技术标签:

【中文标题】从 HealthKit 获取 HKQuantitySample -> heartRateSample (Watch OS2) 的日期/时间【英文标题】:Get date/time for HKQuantitySample -> heartRateSample (Watch OS2) from HealthKit 【发布时间】:2015-10-20 19:01:39 【问题描述】:

我正在使用

-(void)updateHeartRate:(NSArray<__kindof HKSample *> *)samples

从内部手表传感器检索 HearteRate。根据应用在后台(停用)的时间,必须使用以下方法检索几个 heartRateSamples:

if (samples.count>0) 

    for (HKQuantitySample *heartRateSample in samples) 
        dispatch_async(dispatch_get_main_queue(), ^
            if (heartRateSample) 
            NSLog(@"HEART RATE: %@", [@([heartRateSample.quantity doubleValueForUnit:heartRateUnit]) stringValue]);
            
        );
    

但是如何检索特定样本写入 HealthKit 的日期/时间?

【问题讨论】:

【参考方案1】:

数量样本的 startDate 和 endDate 属性描述了采样的时间:

HK_CLASS_AVAILABLE_ios(8_0)
@interface HKSample : HKObject

@property (readonly, strong) HKSampleType *sampleType;

@property (readonly, strong) NSDate *startDate;
@property (readonly, strong) NSDate *endDate;

@end

【讨论】:

这是新的 NSLog 行: NSLog(@"%@ - HEART RATE: %@ / Startdate: %@ / Endate: %@", [self class], [@([heartRateSample.数量 doubleValueForUnit:heartRateUnit]) stringValue], [formatter stringFromDate:heartRateSample.startDate], [formatter stringFromDate:heartRateSample.endDate]);

以上是关于从 HealthKit 获取 HKQuantitySample -> heartRateSample (Watch OS2) 的日期/时间的主要内容,如果未能解决你的问题,请参考以下文章

如何快速从 HealthKit 中获取氧饱和度?

如何快速从 HealthKit 中获取氧饱和度?

HealthKit - 显示睡眠

HealthKit - 显示睡眠

对于 iOS healthkit,如何保存收缩压和舒张压值?

对于 iOS healthkit,如何保存收缩压和舒张压值?