ios - 如何在 HealthKit 中获取 HKWorkoutActivityType 的名称?

标签 ios objective-c healthkit

好的,HKWorkout 的属性 workoutActivityType 返回一个 NSInteger

这是一个包含事件的列表:workoutActivityType list

现在,我将创建一个 plist 并在获得 integer 时查找事件名称。但是必须经历这个似乎有点奇怪。

我需要自己查明是哪项事件,还是我遗漏了什么?

最佳答案

对于现在仍然遇到这个问题的任何人,我已经在 swift 中组合了一个简单的 HKWorkoutActivityType 扩展,以允许将这些类型映射到用户友好的字符串,以及适当的表情符号表示(如果可用):https://github.com/georgegreenoflondon/HKWorkoutActivityType-Descriptions/

这个问题的相关片段是:

extension HKWorkoutActivityType {

    /*
     Simple mapping of available workout types to a human readable name.
     */
    var name: String {
        switch self {
        case .americanFootball:             return "American Football"
        case .archery:                      return "Archery"
        case .australianFootball:           return "Australian Football"
        case .badminton:                    return "Badminton"
        case .baseball:                     return "Baseball"
        case .basketball:                   return "Basketball"
        case .bowling:                      return "Bowling"
        case .boxing:                       return "Boxing"
        case .climbing:                     return "Climbing"
        case .crossTraining:                return "Cross Training"
        case .curling:                      return "Curling"
        case .cycling:                      return "Cycling"
        case .dance:                        return "Dance"
        case .danceInspiredTraining:        return "Dance Inspired Training"
        case .elliptical:                   return "Elliptical"
        case .equestrianSports:             return "Equestrian Sports"
        case .fencing:                      return "Fencing"
        case .fishing:                      return "Fishing"
        case .functionalStrengthTraining:   return "Functional Strength Training"
        case .golf:                         return "Golf"
        case .gymnastics:                   return "Gymnastics"
        case .handball:                     return "Handball"
        case .hiking:                       return "Hiking"
        case .hockey:                       return "Hockey"
        case .hunting:                      return "Hunting"
        case .lacrosse:                     return "Lacrosse"
        case .martialArts:                  return "Martial Arts"
        case .mindAndBody:                  return "Mind and Body"
        case .mixedMetabolicCardioTraining: return "Mixed Metabolic Cardio Training"
        case .paddleSports:                 return "Paddle Sports"
        case .play:                         return "Play"
        case .preparationAndRecovery:       return "Preparation and Recovery"
        case .racquetball:                  return "Racquetball"
        case .rowing:                       return "Rowing"
        case .rugby:                        return "Rugby"
        case .running:                      return "Running"
        case .sailing:                      return "Sailing"
        case .skatingSports:                return "Skating Sports"
        case .snowSports:                   return "Snow Sports"
        case .soccer:                       return "Soccer"
        case .softball:                     return "Softball"
        case .squash:                       return "Squash"
        case .stairClimbing:                return "Stair Climbing"
        case .surfingSports:                return "Surfing Sports"
        case .swimming:                     return "Swimming"
        case .tableTennis:                  return "Table Tennis"
        case .tennis:                       return "Tennis"
        case .trackAndField:                return "Track and Field"
        case .traditionalStrengthTraining:  return "Traditional Strength Training"
        case .volleyball:                   return "Volleyball"
        case .walking:                      return "Walking"
        case .waterFitness:                 return "Water Fitness"
        case .waterPolo:                    return "Water Polo"
        case .waterSports:                  return "Water Sports"
        case .wrestling:                    return "Wrestling"
        case .yoga:                         return "Yoga"

        // iOS 10
        case .barre:                        return "Barre"
        case .coreTraining:                 return "Core Training"
        case .crossCountrySkiing:           return "Cross Country Skiing"
        case .downhillSkiing:               return "Downhill Skiing"
        case .flexibility:                  return "Flexibility"
        case .highIntensityIntervalTraining:    return "High Intensity Interval Training"
        case .jumpRope:                     return "Jump Rope"
        case .kickboxing:                   return "Kickboxing"
        case .pilates:                      return "Pilates"
        case .snowboarding:                 return "Snowboarding"
        case .stairs:                       return "Stairs"
        case .stepTraining:                 return "Step Training"
        case .wheelchairWalkPace:           return "Wheelchair Walk Pace"
        case .wheelchairRunPace:            return "Wheelchair Run Pace"

        // iOS 11
        case .taiChi:                       return "Tai Chi"
        case .mixedCardio:                  return "Mixed Cardio"
        case .handCycling:                  return "Hand Cycling"

        // iOS 13
        case .discSports:                   return "Disc Sports"
        case .fitnessGaming:                return "Fitness Gaming"

        // Catch-all
        default:                            return "Other"
        }
    }

}

关于ios - 如何在 HealthKit 中获取 HKWorkoutActivityType 的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175237/

相关文章:

ios - AdMob 错误链接器命令失败,退出代码为 1(使用 -v 查看调用)

ios - 如何通过从 Swift 中的 UIScrollView 继承它来制作垂直的 UITextView?

ios 动态改变 View 的大小

ios - 检查下载进度时,检查 "progress == 1.0"可以吗?还是应该>=?

Swift HealthKit 触发心率示例

ios - HKSampleQuery 只会返回过去 7 天的值吗?

ios - 在 Xcode Swift 中访问 HealthKit 计步器数据

objective-c - 导致错误的对象的内存地址,找到哪个对象

iphone - 如何在 iphone sdk 中添加视频作为 HUD 元素

ios - 在 Collection View 中一次滚动一个单元格