创建新的HKQuantityType

时间:2016-12-20 09:25:03

标签: ios swift health-kit watch-os

我在某些页面中读到,您可以将自定义样本添加到HealthKit,以便保存其他测量值。

就我而言,我想将applewatch中的加速计数据添加到HealthKit

这是我的代码

func saveSample(data:Double, date:NSDate ) {
    let dataType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.init(rawValue: "acc"))
    let dataQuantity = HKQuantity(unit: HKUnit.init(from: "m/s^2"), doubleValue: data)
    let dataSample = HKQuantitySample(type: dataType!, quantity: dataQuantity, start: date as Date, end: date as Date)
    healthKitStore.save(dataSample, withCompletion: { (success, error) -> Void in
        if( error != nil ) {
            print("Error saving sample:")
        } else {
            print("Sample saved successfully!")
        }
    })
}

我想添加一个名为“acc”的样本(在正常情况下,这个例子可能是“bloodPreasure”),单位为“m / s ^ 2”。

我在dataType上得到nil,因此我在Error行上得到let dataSample = HKQuantitySample(type: dataType!, quantity: dataQuantity, start: date as Date, end: date as Date),因为dataType为nil。

  

致命错误:在解包可选值时意外发现nil

任何想法,如何实现?谢谢大家!

1 个答案:

答案 0 :(得分:0)

我相信HKQuantityType.quantityType(forIdentifier:我们需要提供像HKQuantityTypeIdentifier.bodyTemperature这样的苹果提供的标识符。然后只返回quantityType对象。

所以你在dataType中获得了nil。

我相信我们无法创建新的HKQuantityType,因为健康商店也必须保存它,而且这部分不在我们的控制范围内。