Swift - Как извлечь HKUnit из healthStore.preferredUnits ..? - PullRequest
0 голосов
/ 26 мая 2020
• 1000 В моем случае это «ми» (мили). Для других регионов мира это, конечно, может быть km, et c.

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]

Это правильно для моего языка («mi» для миль), поэтому мой код работает должным образом.

Однако я не могу понять синтаксис для «извлечения» ТОЛЬКО части HKUnit (= mi) возвращенной пары значений в мою переменную «var предпочтительноеDistanceUnit: HKUnit?».

Может ли кто-нибудь помочь мне с правильным синтаксис для этой строки кода!?

Спасибо!

1 Ответ

0 голосов
/ 26 мая 2020

ОК - разобрался сам!

Правильный ответ:

self.usrPreferredDistUnits = preferredType.first?.value;
...