HealthKit: проблема с удалением связанных образцов из предоставленной тренировки - PullRequest
1 голос
/ 09 мая 2019

Используя HealthKit, я сохраняю следующие данные:

  1. Тренировка
  2. Активная энергия
  3. Расстояние

Я удаляю тренировкуиспользуя приведенный ниже код:

self.healthStore?.delete(workout, withCompletion: { (status, error) in

Но приведенный выше код просто удаляет тренировку из приложения HealthKit.Я хочу удалить тренировки и связанные с ними образцы.Как я могу это сделать?

1 Ответ

0 голосов
/ 25 июня 2019

Чтобы удалить связанные образцы, нам нужно выполнить запрос на удаление для конкретного HKQuantityTypeIdentifier.

Чтобы удалить активную энергию из тренировки, см. Код ниже:

 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)
...