我读过一些页面,您可以将自定义样本添加到HealthKit中,以保存其他度量。

就我而言,我想将来自Apple Watch的加速度计数据添加到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!")
        }
    })
}

我想添加一个单位为“m / s ^ 2”的示例,称为“acc”(在正常情况下,此示例为“bloodPreasure”)。

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

致命错误:解开Optional值时意外发现nil

有什么想法,如何实现呢?谢谢大家!

最佳答案

我相信HKQuantityType.quantityType(forIdentifier:我们需要提供苹果提供的标识符,例如HKQuantityTypeIdentifier.bodyTemperature。然后只有它会返回一个quantityType对象。

因此,您在dataType中得到零。

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

关于ios - 创建新的HKQuantityType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41238791/

10-09 20:31