我一直在阅读Apple Watch(系列2)的心率,但是,在昨天更新到OS4.2.2(并将iPhone 7更新到最新的操作系统,iOS 11.2.5)后,调用createHeartRateStreamingQuery( )从HealthKitManager停止在我的设备上工作。
代码没有改变,模拟器上仍然可以运行。作为参考,这里是代码(在模拟器中工作但在更新后在.running情况下的if-let语句中似乎无法在设备上工作)的调用:
func workoutSession(_ workoutSession : HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState, from fromState: HKWorkoutSessionState, date: Date) {
switch toState {
case .running:
guard let workoutStartDate = workoutStartDate else {
print(workoutStartDate)
return
}
if let query = healthKitManager.createHeartRateStreamingQuery(workoutStartDate) {
self.heartRateQuery = query
self.healthKitManager.heartRateDelegate = self
healthKitManager.healthStore.execute(query)
}
case .ended:
print("Workout ended")
if let query = self.heartRateQuery {
healthKitManager.healthStore.stop(query)
}
default:
print("Other workout state")
}
}
有没有人有任何想法?或者,自更新以来,还有其他人对Apple Watch / Healthkit有问题吗?谢谢!
答案 0 :(得分:0)
现在情况正在发挥作用,我猜测它与我设定锻炼日期时有关。我在创建锻炼课程之前设定了锻炼日期。现在我正在创建锻炼课程之后这样做。这是我为可能的解决方案摸索的唯一实质性变化。