【发布时间】:2017-06-28 19:19:44
【问题描述】:
我已成功写入 HealthKit,但收到这些值总是返回 0。我正在尝试返回最新的体重值。
这是我读取重量的函数:
public func readWeight(result: @escaping (Double) -> Void) {
print("Weight")
let quantityType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)
let weightQuery = HKSampleQuery(sampleType: quantityType!, predicate: nil, limit: 1, sortDescriptors: nil) {
query, results, error in
if (error != nil) {
print(error!)
result(0.0)
}
guard let results = results else {
print("No results of query")
result(0.0)
return
}
if (results.count == 0) {
print("Zero samples")
result(0.0)
return
}
guard let bodymass = results[0] as? HKQuantitySample else {
print("Type problem with weight")
result(0.0)
return
}
result(bodymass.quantity.doubleValue(for: HKUnit.pound()))
}
healthKitStore.execute(weightQuery)
}
这就是我将它设置为变量的方式:
readWeight() { weight in
Weight = weight
}
谢谢!
【问题讨论】:
-
@ninjaproger 那是我的……我这样做是为了让问题更清楚一些,而且问的方式也不同
-
@arodebaugh 如果您在两个问题中都有相同的问题,那么您应该更新第一个更清楚,而不是打开另一个打开。
-
@Cristik 让另一个人更清楚地对所有这些混淆感到抱歉,我真的很想继续这个项目,但这个错误让我无法这样做
-
@arodebaugh 如果您改进了另一个问题,还需要这个吗?如果没有,你可以删除它。
标签: swift swift3 healthkit hksamplequery