Я использую HealthKit от Apple, и все правильно авторизовано и работает для моей локали (США).
Однако я хотел бы получить предпочтительные единицы пользователя (настройка HKUnit) для «distanceWalkingRunning». В моем случае это «ми» (для миль). Для других регионов мира это, конечно, может быть км и т. д.
Apple HealthStore предлагает эту функцию:
func preferredUnits(for quantityTypes: Set<HKQuantityType>,
completion: @escaping ([HKQuantityType : HKUnit], Error?) -> Void)
Когда я использую эту функцию в коде ниже:
var usrPreferredDistUnits: HKUnit?
let quantityType : Set = [HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceWalkingRunning)!]
healthStore.preferredUnits(for: quantityType) { (preferredType, error) in
//self.usrPreferredDistUnits = preferredType; // error! how to extract HKUnit???
print("\(preferredType)") }
Я получаю следующие результаты печати:
[HKQuantityTypeIdentifierDistanceWalkingRunning: mi]
Это правильно для моей локали («ми» для Майлза), поэтому мой код работает, как и ожидалось.
Однако я не могу понять синтаксис для «извлечения» ТОЛЬКО части HKUnit (= mi) возвращаемой пары значений в мою переменную «var предпочитаемыйDistanceUnit: HKUnit?».
Может ли кто-нибудь помочь мне с правильным синтаксисом для этой строки кода!?
Спасибо!