Swift 4从HealthKit获取preferredUnit

时间:2018-06-19 20:59:32

标签: ios swift health-kit

我是Swift的初学者,我试图从HealthKit获取用户首选单位。

Apple为此提供了此功能

func preferredUnits(for quantityTypes: Set<HKQuantityType>, 
     completion: @escaping ([HKQuantityType : HKUnit], Error?) -> Void)

Source

但是我真的不知道如何正确实现它。 Atm该功能在我的App中什么也不做。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

    let bloodGlucose = HKObjectType.quantityType(forIdentifier: .bloodGlucose)
    let HKQuantitySet: Set<HKSampleType> = [bloodGlucose!]        

    self.preferredUnits(for: HKQuantitySet as! Set<HKQuantityType>, completion: { (preferedUnit, error) in
            print(preferedUnit)
        })

    return true
}



func preferredUnits(for quantityTypes: Set<HKQuantityType>,
                completion: @escaping ([HKQuantityType : HKUnit], Error?) -> Void){

}

我很确定我对此完全错了。

有人知道如何正确实现该功能吗?一般来说,不仅对于bloodglucose来说,它也不错。

1 个答案:

答案 0 :(得分:2)

您需要将preferredUnits函数称为HKHealthStore的实例。您的代码只是调用一个已声明且具有相同签名的函数,什么也不做。