- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 Apple Watch 开发一个非常简单的锻炼应用程序。它使用 Health Kit 开始和结束锻炼,我唯一的问题是,当我尝试结束锻炼时,它通常不会结束 session ,我收到此错误
2020-07-22 12:27:46.547720-0700 5k WatchKit Extension[25774:944527] [workouts] <HKWorkoutSession:0x80156310 A54AF52C-8B08-4BAD-A28C-03D8E54044B5 ended>: Failed to end: Error Domain=com.apple.healthkit Code=3 "Unable to transition to the desired state from the Ended(3) state (event 6). Allowed transitions from the current state are: {
7 = "<error(7): Ended(3) -> Ended(3)>";
}" UserInfo={NSLocalizedDescription=Unable to transition to the desired state from the Ended(3) state (event 6). Allowed transitions from the current state are: {
7 = "<error(7): Ended(3) -> Ended(3)>";
}}
我什至不确定从哪里开始从这些信息中寻找问题,也不知道这意味着什么。此外,通常在第 4 次或第 5 次尝试时,它实际上会结束锻炼。
最佳答案
可能的原因是结束锻炼类(class)和锻炼构建器数据收集的顺序错误。
如果您的代码看起来与此类似,您将收到错误:
session.end()
builder.endCollection(withEnd: Date()) { (success, error) in
builder.finishWorkout { (workout, error) in
// do something
}
}
session 尚未结束,但代码立即尝试结束构建器的 session 。
在 Apple 的示例中 ( https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings/speedysloth_creating_a_workout ) 是通过代表完成锻炼的正确方法:
session.delegate = self
.....
func endWorkout() {
// End the workout session.
session.end()
}
....
extension WorkoutManager: HKWorkoutSessionDelegate {
func workoutSession(_ workoutSession: HKWorkoutSession, didChangeTo toState: HKWorkoutSessionState,
from fromState: HKWorkoutSessionState, date: Date) {
// Wait for the session to transition states before ending the builder.
/// - Tag: SaveWorkout
if toState == .ended {
print("The workout has now ended.")
builder.endCollection(withEnd: Date()) { (success, error) in
self.builder.finishWorkout { (workout, error) in
// Optionally display a workout summary to the user.
self.resetWorkout()
}
}
}
}
func workoutSession(_ workoutSession: HKWorkoutSession, didFailWithError error: Error) {
}
}
关于swift - 为什么我的 HKWorkoutSession(通常)没有结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63041909/
我正在使用 HKWorkoutSession 在 workoutBuilder didCollectDataOf 中每 5 秒获取一次心率数据。心率报告为“心跳/分钟”。问题是,它们是按移动平均线计算
我正在使用 HealthKit在我的项目中,我想声明一个 HKWorkoutSession在我的一个类(class)。我确实导入了 ,我试着这样声明: @property (nonatomic) H
我有一个 watchOS 2 应用程序,可以在运行过程中显示健康数据。我使用 HKWorkoutSession 开始锻炼,如下所示: self.workoutSession = HKWorkoutSe
我正在为 Apple Watch 开发一个非常简单的锻炼应用程序。它使用 Health Kit 开始和结束锻炼,我唯一的问题是,当我尝试结束锻炼时,它通常不会结束 session ,我收到此错误 20
我正在开发 Apple Watch 应用程序,并且正在使用 HKworkoutsession 访问心率数据样本。 在最新的 watchos2 beta3 发布错误中“在进行事件锻炼期间,屏幕关闭时不会
据称,运行 HKWorkoutSession 的应用程序将比其他 watchOS 2 应用程序具有特殊权限,因此当用户查看他们的 Apple Watch 时,它会转到显示正在锻炼的 View 而不是表
我开发了一个带有 watch 应用程序的 iPhone 应用程序,用于获取实时心率流。正如许多 stackoverflow 线程中提到的 iOS get heart rate from Apple W
我正在开发一款健身应用,目前我不想通过 HealthKit 获取任何数据。实际上,通过 HKWorkoutSession 将我的应用程序保持在后台是唯一迫使我现在使用 HealtKit 的东西。 我遇
我使用的是 iOS 9 beta 4 和 watchOS 2 beta 4。 当 watch 屏幕变黑(锁定)时,我似乎无法获取任何心率数据。我会接到 applicationWillResignAct
我是一名优秀的程序员,十分优秀!