watchOS 5: HKLiveWorkoutBuilder, HKWorkoutRouteBuilder и расстояние тренировки - PullRequest
0 голосов
/ 11 сентября 2018

Я использую HKLiveWorkoutBuilder & HKWorkoutRouteBuilder для отслеживания тренировки на Apple Watch.

при звонке:

[workoutBuilder finishWorkoutWithCompletion:^(HKWorkout * _Nullable workout, NSError * _Nullable error) {

}];

Возвращенный объект workout не включает расстояние, пройденное пользователем:

(lldb) po workout.totalDistance
nil

Однако маршрут сохранен правильно.

Учитывая, что .totalDistance только для чтения, как мне установить расстояние тренировки в watchOS 5?

enter image description here

enter image description here

1 Ответ

0 голосов
/ 28 сентября 2018

Ответ состоит из двух частей.

Чтобы заставить его работать на ходьбе или беге , вы можете использовать следующий код:

workoutBuilder?.beginCollection(withStart: Date(), completion: { (success, error) in
    guard success == true else {
        #warning ("deal with failure")
        return
    }

    workoutBuilder?.dataSource = HKLiveWorkoutDataSource(healthStore:self.healthStore, workoutConfiguration: self.workoutConfig)

    // ?? this is the important bit ??
    workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)!, predicate: nil)

    workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .heartRate)!, predicate: nil)
    workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, predicate: nil)

})

Вы можете адаптировать это для плавания и катания на лыжах.

В настоящее время нет способа использовать конструктор тренировок для определения расстояния до других видов активного отдыха, например, гребли.

Я буду регистрировать радар для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...