HKBiologicalSexObject.biologicalSex returns HKBiologicalSex 而不是 .Male 或 .Female
HKBiologicalSexObject.biologicalSex returns HKBiologicalSex instead of .Male or .Female
我已经授权了 HealthKit,我正在从 HealthKitStore 中获取 BiologicalSex,如下所示:
let healthKitStore:HKHealthStore = HKHealthStore()
var biologicalSexObject: HKBiologicalSexObject?
var biologicalSex: HKBiologicalSex?
do {
biologicalSexObject = try healthKitStore.biologicalSex()
biologicalSex = biologicalSexObject!.biologicalSex
} catch _ as NSError {
biologicalSex = nil
print("error reading biological sex")
}
但是,当我尝试打印 biologicalSex
时,它 returns HKBiologicalSex
而不是 .Male
或 .Female
.
我在几个教程中或多或少地看到过这个确切的代码,所以我想知道在 Swift 2 中是否有我应该注意的语法更改。(错误处理已更改,所以我很好奇是否还有其他值得注意的地方。)
需要 biologicalSex = biologicalSexObject!.biologicalSex
的 rawValue
才能执行此操作。 BiologicalSex 的枚举如下所示:
typedef enum : NSInteger {
HKBiologicalSexNotSet = 0,
HKBiologicalSexFemale,
HKBiologicalSexMale,
HKBiologicalSexOther,
} HKBiologicalSex;
使用此信息很容易设计一个 switch 语句来涵盖所有可能的值:
switch biologicalSex.rawValue{
case 0:
biologicalSex = nil
case 1:
biologicalSex = "Female"
case 2:
biologicalSex = "Male"
case 3:
biologicalSex = "Other"
default:
biologicalSex = nil
}
我已经授权了 HealthKit,我正在从 HealthKitStore 中获取 BiologicalSex,如下所示:
let healthKitStore:HKHealthStore = HKHealthStore()
var biologicalSexObject: HKBiologicalSexObject?
var biologicalSex: HKBiologicalSex?
do {
biologicalSexObject = try healthKitStore.biologicalSex()
biologicalSex = biologicalSexObject!.biologicalSex
} catch _ as NSError {
biologicalSex = nil
print("error reading biological sex")
}
但是,当我尝试打印 biologicalSex
时,它 returns HKBiologicalSex
而不是 .Male
或 .Female
.
我在几个教程中或多或少地看到过这个确切的代码,所以我想知道在 Swift 2 中是否有我应该注意的语法更改。(错误处理已更改,所以我很好奇是否还有其他值得注意的地方。)
需要 biologicalSex = biologicalSexObject!.biologicalSex
的 rawValue
才能执行此操作。 BiologicalSex 的枚举如下所示:
typedef enum : NSInteger {
HKBiologicalSexNotSet = 0,
HKBiologicalSexFemale,
HKBiologicalSexMale,
HKBiologicalSexOther,
} HKBiologicalSex;
使用此信息很容易设计一个 switch 语句来涵盖所有可能的值:
switch biologicalSex.rawValue{
case 0:
biologicalSex = nil
case 1:
biologicalSex = "Female"
case 2:
biologicalSex = "Male"
case 3:
biologicalSex = "Other"
default:
biologicalSex = nil
}