Пытаюсь сохранить тренировку в 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 и нулевую ошибку - так что на этом этапе я бы ожидал, что он будет там.
Однако при открытии приложения «Здоровье» я не могу найти информацию о тренировке, расстоянии или сожженных калориях. Что мне не хватает?