【发布时间】:2020-06-03 01:18:35
【问题描述】:
我目前正在开展一个项目,我想在每次心率变化时从 Health Kit 中获取心率!我也尝试过使用 Timer,但结果是一样的。
它最多被调用 2 次并且永远不会再改变结果。另外,任何有 Swift 经验的人都可以告诉我,如果我想获得最大脉冲,HKStatisticsQuery 是一个不错的选择吗?
最后这是我的代码,我不知道我做错了什么。另外,对于我是使用 Swift 编写程序的初学者的业余代码,我真的很抱歉。
func createHeartRateStreamingQuery() -> HKQuery? {
guard let heartRateType: HKQuantityType = HKQuantityType.quantityType(forIdentifier: .heartRate) else {
return nil
}
let predicate = HKQuery.predicateForSamples(withStart: nil, end: nil,options: .strictEndDate)
let heartRateQuery = HKAnchoredObjectQuery(type: heartRateType, predicate: predicate, anchor: nil, limit: HKObjectQueryNoLimit) { (query, sampleObjects, deletedObjects, newAnchor, error) in
guard let newAnchor = newAnchor,
let sampleObjects = sampleObjects else {
return
}
self.anchor = newAnchor
self.heartRateDelegate?.heartRateUpdated(heartRateSamples: sampleObjects)
}
heartRateQuery.updateHandler = {(query, sampleObjects, deletedObjects, newAnchor, error) -> Void in
guard let newAnchor = newAnchor,
let sampleObjects = sampleObjects else {
return
}
self.anchor = newAnchor
self.heartRateDelegate?.heartRateUpdated(heartRateSamples: sampleObjects)
}
return heartRateQuery
}
【问题讨论】:
标签: ios objective-c swift iphone healthkit