Сохранение тренировок в HealthKit

Пытаюсь сохранить тренировку в HealthKit. Вот мой код:

__weak typeof(self) weakSelf = self;

self.healthStore = [[HKHealthStore alloc] init];
[self.healthStore requestAuthorizationToShareTypes:[NSSet setWithObject:[HKWorkoutType workoutType]] readTypes:nil completion:^(BOOL success, NSError *error) {

    if (success){

        HKWorkout *workout = [HKWorkout workoutWithActivityType:HKWorkoutActivityTypeRunning startDate:[NSDate dateWithTimeIntervalSinceNow:-3600] endDate:[NSDate date] duration:3600 totalEnergyBurned:[HKQuantity quantityWithUnit:[HKUnit calorieUnit] doubleValue:100.0] totalDistance:[HKQuantity quantityWithUnit:[HKUnit meterUnit] doubleValue:5000.0] metadata:nil];

        __strong typeof(weakSelf) strongSelf = weakSelf;
        [strongSelf.healthStore saveObject:workout withCompletion:^(BOOL success, NSError *error) {
            NSLog(@"Success? %d", success);
            if (error){
                NSLog(@"Error: %@", error);
            }
        }];
    }

}];

После запроса у пользователя разрешения (и принятия) этот код создает беговое действие, которое длится 1 час, сжигает 100 калорий и имеет расстояние 5000 м.

Сохранение тренировки в HKHealthStore дает значение успеха YES и нулевую ошибку - так что на этом этапе я бы ожидал, что он будет там.

Однако при открытии приложения «Здоровье» я не могу найти информацию о тренировке, расстоянии или сожженных калориях. Что мне не хватает?


person simonmaddox    schedule 18.09.2014    source источник


Ответы (2)


Это ожидаемое поведение в iOS 8. Тренировки не отображаются в приложении «Здоровье», но вы все равно сможете запрашивать их. Калории и расстояние от тренировки будут отображаться в разделе «Здоровье», только если вы также сохраните образцы калорий / расстояния, связанные с этой тренировкой, с помощью - [HKHealthStore addSamples: toWorkout: Завершение].

person Allan    schedule 18.09.2014
comment
Спасибо! Я также подал это как радар запроса функции - rdar: // 18391800 - person simonmaddox; 19.09.2014
comment
Быстрый вопрос ... когда ты _1 _... как ты сможешь получить их снова? - person Georg; 05.04.2017

Используйте [HKHealthStore addSamples: toWorkout: Завершение]. для получения дополнительной информации http://eriphonedeveloper.wordpress.com/2014/09/30/a-soft-touch-of-apple-healthkit-healthkit-tutorial/

person Mahendra Y    schedule 28.10.2014