#ios #swift
#iOS #быстрый
Вопрос:
Мне интересно, как найти максимальную скорость пользователя, используя HealthKit
.
Я сталкивался с этим HKMetadataKeyMaximumSpeed
, но понятия не имею, как его реализовать / использовать. Документы мне не очень понятны.
Кто-нибудь может оказать здесь какую-либо помощь?
Ответ №1:
Apple указывает, что :
HKMetadataKeyMaximumSpeed Установите этот ключ для тренировки, сегмента тренировки или выборки количества, представляющего расстояние. Установите его значение в объект HKQuantity с единицей измерения длины / времени (например, м / с)
Таким образом, вы можете использовать эту функцию с этим свойством :
func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
if event.type == .segment {
let maxSpeed = event.metadata?[HKMetadataKeyMaximumSpeed]
// do it here your logic
}
Что касается вашего комментария: Вы не можете генерировать эти события в симуляторе.
Комментарии:
1. значит, мне буквально нужно покататься на сноуборде, чтобы проверить это? 😀
2. ха-ха, да, также вам нужно дождаться достаточного количества снега: D
3. дал тебе голос … другой парень пришел туда первым, чтобы быть справедливым
4. все в порядке, в следующий раз 🙂
Ответ №2:
В документах Apple есть пример.
func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
// Check to see if the event is a segment.
if event.type == .segment {
// Get the segment's start and end times.
let startTime = event.dateInterval.start
let endTime = event.dateInterval.end
// Get the segment's metadata.
let averageSpeed = event.metadata?[HKMetadataKeyAverageSpeed]
let maxSpeed = event.metadata?[HKMetadataKeyMaximumSpeed]
let alpineSlope = event.metadata?[HKMetadataKeyAlpineSlopeGrade]
let elevationAscended = event.metadata?[HKMetadataKeyElevationAscended]
let elevationDescended = event.metadata?[HKMetadataKeyElevationDescended]
// Do something with the segment data here...
}
// Also handle any other event types...
}
Комментарии:
1. Спасибо! Я видел это, вы знаете, нужны ли данные для катания на горных лыжах и сноуборде?
2. кроме того, есть идеи, как генерировать эти события в симуляторе?
3. Из документов HKMetadataKeyMaximumSpeed похоже, что он добавлен только для этого 2.
HealthKit assigns this metadata key to the segments it automatically creates for HKWorkoutActivityType.downhillSkiing and HKWorkoutActivityType.snowboarding workout sessions (Apple Watch Series 3 only)
4. Похоже, он не работает на симуляторе .
5. @peterflanagan если мой ответ был полезен, пожалуйста, примите ответ или проголосуйте