Опитвам се да запазя тренировка в 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 дава стойност за успех ДА и нулева грешка - така че на този етап очаквам да е там.
При отваряне на приложението Health обаче не мога да намеря тренировката, разстоянието или изгорените калории. Какво ми липсва?