HealthKit requestAuthorization для correlationType (forIdentifier: .bloodPressure) - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь прочитать данные BloodPressure из HealthKit, и мне интересно, почему я должен запросить .bloodPressureSystolic и .bloodPressureDiastolic вместо .bloodPressure

Я пытаюсь спросить

requestAuthorization(toShare: nil, read: dataTypesToRead, completion: { ... })

где dataTypesToRead = HKObjectType.correlationType(forIdentifier: .bloodPressure) (ps: это просто для простоты, correlationType(forIdentifier: ) должен быть развернут)

и приложение вылетает. Так что я предполагаю, что нельзя requestAuthorization за correlationType(forIdentifier: )

если я использую HKObjectType.quantityType(forIdentifier:) или .categoryType(forIdentifier:), то requestAuthorization отлично работает, также с .bloodPressureSystolic и .bloodPressureDiastolic

Если мое предположение верно, то почему Apple говорит:

typesToRead Набор, содержащий типы данных, которые вы хотите прочитать. Этот набор может содержать любой конкретный подкласс класса HKObjectType (любой из HKCharacteristicType , HKQuantityType, HKCategoryType, HKWorkoutType or HKCorrelationType classes). Если пользователь дает разрешение, ваше приложение может читать эти типы данных из хранилища HealthKit.

https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization

верно ли мое предположение? почему я не могу спросить разрешения на HKObjectType.correlationType(forIdentifier: .bloodPressure) ??

1 Ответ

0 голосов
/ 09 мая 2018

HealthKit не требует авторизации для типов корреляции, потому что ваше приложение может запрашивать только корреляции с объектами-членами, которые ему разрешено читать. Кажется, что документация просто немного вводит в заблуждение, когда упоминается HKCorrelationType классы.

...