I have the below method running in both my IOS app and my WatchKit App (Xcode 7 GM). The IOS app returns all of my running workouts, however the Watchkit app returns only the first 2 running workouts.
Any idea?
func readRunningWorkOuts(completion: (([AnyObject]!, NSError!) -> Void)!) {
// 1. Predicate to read only running workouts
let predicate = HKQuery.predicateForWorkoutsWithWorkoutActivityType(HKWorkoutActivityType.Running)
// 2. Order the workouts by date
let sortDescriptor = NSSortDescriptor(key:HKSampleSortIdentifierStartDate, ascending: false)
// 3. Create the query
let sampleQuery = HKSampleQuery(sampleType: HKWorkoutType.workoutType(), predicate: predicate, limit: 0, sortDescriptors: [sortDescriptor])
{ (sampleQuery, results, error ) -> Void in
if let queryError = error {
print( "There was an error while reading the samples: \(queryError.localizedDescription)")
}
completion(results,error)
}
// 4. Execute the query
healthKitStore.executeQuery(sampleQuery)
}
Only the last 7 days worth of data is available from HealthKit on the watch. Any workouts that were created earlier than that will only be on the phone. See the HKHealthStore reference for more information.