HealthKit:与提供的锻炼相关的样本删除问题
Posted
技术标签:
【中文标题】HealthKit:与提供的锻炼相关的样本删除问题【英文标题】:HealthKit : Issue with associated samples deletion of provided workout 【发布时间】:2019-05-09 08:55:12 【问题描述】:使用 HealthKit,我正在保存以下数据:
-
锻炼
活性能量
距离
我正在使用以下代码删除锻炼:
self.healthStore?.delete(workout, withCompletion: (status, error) in
但上面的代码只是从 HealthKit 应用程序中删除了一个锻炼。我想删除锻炼及其相关样本。我该怎么做?
【问题讨论】:
【参考方案1】:要删除关联样本,我们需要对特定的HKQuantityTypeIdentifier
执行删除查询。
要从锻炼中删除 Active Energy,请参阅以下代码:
let energyBurnedQuantity = HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)
let predicate = HKQuery.predicateForObjects(from: workout)
let energyQuery = HKSampleQuery(sampleType: energyBurnedQuantity!, predicate: predicate, limit: 100, sortDescriptors: nil) (query, result, error) in
if error == nil
guard let resultData = result else
return
if resultData.count > 0
self.healthStore?.delete(resultData, withCompletion: [unowned self] (status, error) in
if status == true
print("Successfully deleted Energy.")
)
else
print("Error \(String(describing: error?.localizedDescription))")
)
self.healthStore?.execute(energyQuery)
【讨论】:
以上是关于HealthKit:与提供的锻炼相关的样本删除问题的主要内容,如果未能解决你的问题,请参考以下文章
此 HealthKit 错误的原因是啥:“将样本添加到锻炼时发生错误”?
此 HealthKit 错误的原因是啥:“将样本添加到锻炼时发生错误”?
在 HealthKit 中查询 heartRateVariabilitySDNN?