predicateForWorkoutActivities(operatorType:quantityType:averageQuantity:)
Returns a predicate for matching workout activities based the average value of an associated quantity type.
Declaration
class func predicateForWorkoutActivities(operatorType: NSComparisonPredicate.Operator, quantityType: HKQuantityType, averageQuantity: HKQuantity) -> NSPredicateParameters
- operatorType:
The operator type to use when comparing the average quantity.
- quantityType:
The type of Hkquantitysample objects used to calculate the average quantity.
- averageQuantity:
The target value for the average quantity.
Discussion
Use this convenience method to create a predicate that matches workouts with the specified average quantity. To use this predicate, call predicateForWorkouts(activityPredicate:) to wrap this predicate inside a workout predicate. You can then use the workout predicate in your query.
The following sample creates a predicate for workout activities with an average heart rate of 150 bmp or higher.
let quantityType = HKQuantityType(.heartRate)
let expectedQuantity =
HKQuantity(unit: .count().unitDivided(by: .minute()),
doubleValue: 150.0)
let heartRatePredicate =
HKQuery.predicateForWorkoutActivities(
operatorType: .greaterThanOrEqualTo,
quantityType: quantityType,
averageQuantity:
expectedQuantity
)
// Wrap the activity predicate inside a workout predicate.
let workoutPredicate = HKQuery.predicateForWorkouts(activityPredicate: heartRatePredicate)For more information on how HealthKit calculates statistics for HKWorkoutActivity objects, see statistics(for:).
See Also
Creating workout activity predicates
predicateForWorkoutActivities(workoutActivityType:)predicateForWorkoutActivities(operatorType:duration:)predicateForWorkoutActivities(start:end:options:)predicateForWorkoutActivities(operatorType:quantityType:maximumQuantity:)predicateForWorkoutActivities(operatorType:quantityType:minimumQuantity:)predicateForWorkoutActivities(operatorType:quantityType:sumQuantity:)