保存PeakExpiratoryFlowRate HealthKit记录

时间:2016-06-21 23:10:36

标签: ios objective-c health-kit

我正在尝试将3位数的NSNumber记录为健康套件,作为PeakExpiratoryFlowRate,代码低于

- (void)PeakFlowupdate:(NSNumber *)pkFlow
{

    NSString *identifier = HKQuantityTypeIdentifierPeakExpiratoryFlowRate;
    HKQuantityType *peakFlowType = [HKObjectType quantityTypeForIdentifier:identifier];

    HKQuantity *myPeakFlow = [HKQuantity quantityWithUnit:[HKUnit minuteUnit] doubleValue:[pkFlow doubleValue]];
    HKQuantitySample *peakFlowSample = [HKQuantitySample quantitySampleWithType:peakFlowType quantity:myPeakFlow startDate:[NSDate date] endDate:[NSDate date]];

    [healthStore saveObject:peakFlowSample withCompletion:^(BOOL success, NSError *error) {

        if (success) {
            NSLog(@"SAVED!");
        } else {
            NSLog(@"%@", error);
        }

    }];
}

但是,当我尝试将数据保存到运行状况工具包时,我收到此错误

  

由于未捕获的异常而终止应用   ' _HKObjectValidationFailureException',原因:' HKQuantitySample 250   min 2016-06-22 10:32:24 +1200 2016-06-22 10:32:24 +1200需要单位   类型的体积/时间。不兼容的单位:分钟

1 个答案:

答案 0 :(得分:0)

如异常消息所述,您无法使用以分钟为单位指定的数量来实例化峰流量样本。峰值流量以体积/时间为单位测量,因此您需要使用[[HKUnit literUnit] unitDividedByUnit:[HKUnit minuteUnit]]之类的东西。