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 锻炼查询似乎真的很慢

在 HealthKit 中查询 heartRateVariabilitySDNN?

在 HealthKit 中查询 heartRateVariabilitySDNN?

Swift HealthKit 触发心率样本