HKQuantityTypeIdentifier 用字符串初始化

HKQuantityTypeIdentifier initialize with string

我正在尝试创建如下所示的 HKObjectType,但所有值均为空。我通过字符串获取枚举值,所以我需要创建对象来获得身份验证。

let c = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.init(rawValue: "bodyFatPercentage"))

let d = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: "BodyFatPercentage"))

let e = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: "bodyFatPercentage"))

原始值有误,检查一下

print(HKQuantityTypeIdentifier.bodyFatPercentage.rawValue)
// HKQuantityTypeIdentifierBodyFatPercentage

所以你必须写

let e = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier(rawValue: "HKQuantityTypeIdentifierBodyFatPercentage"))

但为什么不呢

let c = HKObjectType.quantityType(forIdentifier: .bodyFatPercentage)