как найти HKMetadataKeyMaximumSpeed

#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 если мой ответ был полезен, пожалуйста, примите ответ или проголосуйте