我在某些页面中读到,您可以将自定义样本添加到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
任何想法,如何实现?谢谢大家!
答案 0 :(得分:0)
我相信HKQuantityType.quantityType(forIdentifier:
我们需要提供像HKQuantityTypeIdentifier.bodyTemperature
这样的苹果提供的标识符。然后只返回quantityType对象。
所以你在dataType
中获得了nil。
我相信我们无法创建新的HKQuantityType,因为健康商店也必须保存它,而且这部分不在我们的控制范围内。