Saving Workouts in HealthKit

I am trying to save a workout in HealthKit. Here is my code:

__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);
            }
        }];
    }

}];

After asking the user for permission (and acceptance), this code creates a current activity that lasts 1 hour, burns 100 calories and has a distance of 5000 m.

Saving your workout at HKHealthStore gives you YES success and nil error - so at this point I expect it to be there.

However, when I open the Health app, I can’t find the workout, distance or calories burned. What am I missing?

+4
source share
2 answers

iOS 8. "", . "", /, , - [HKHealthStore addSamples: toWorkout: ].

+8

All Articles