gpt4 book ai didi

swift - 为什么 Health store 的 PauseWorkoutSession 不暂停 Session?

转载 作者:行者123 更新时间:2023-11-28 16:09:14 27 4
gpt4 key购买 nike

我正在创建一个 iWatch 应用程序,它读取心率数据,然后我用它来绘制一些图表。应用程序中有 2 个按钮,一个用于暂停锻炼,另一个用于恢复锻炼。单击暂停按钮时,我将调用 healthStore 的 pauseWorkoutSession 方法:

healthStore.pauseWorkoutSession(workoutSession!)

Resume Button 的 OnClick,我正在调用 healthStore 的 resumeWorkoutSession 方法:

healthStore.resumeWorkoutSession(workoutSession!)

要获取心率数据,我正在运行以下代码:

let quantityType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!
let datePredicate = HKQuery.predicateForSamplesWithStartDate(instanceDel.workoutSessionStartDate, endDate: nil, options: .StrictStartDate)


let updateHandler: (HKAnchoredObjectQuery,[HKSample]?,[HKDeletedObject]?,HKQueryAnchor?,
NSError?)-> Void = {query, samples, deleteObjects, newAnchor, error in

if !self.instanceDel.workoutPaused {
//do something
}
}

heartRateQuery = HKAnchoredObjectQuery(type: quantityType, predicate: datePredicate, anchor: nil, limit: Int(HKObjectQueryNoLimit) , resultsHandler: updateHandler)
heartRateQuery!.updateHandler = updateHandler
instanceDel.healthStore.executeQuery(heartRateQuery!)

我面临的问题是更新处理程序不断被调用,新的心率值不断添加到样本数组,即使在锻炼暂停时也是如此。 pauseWorkoutSession 究竟有什么作用?是不是它是否应该暂停锻炼以接收新的心率读数?

最佳答案

暂停锻炼并不是为了防止 watchOS 收集心率样本或任何其他类型的样本。以这种方式思考 - 即使 watch 没有记录锻炼,它仍在收集心率、步数、距离、卡路里等。

如果您想忽略 session 暂停时记录的样本,您应该停止查询或忽略这些样本。

关于swift - 为什么 Health store 的 PauseWorkoutSession 不暂停 Session?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com