HealthKit requestIuthorization for correlationType(forIdentifier:.bloodPressure)

时间:2018-05-08 11:30:15

标签: ios swift permissions health-kit

我正在尝试从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 :(得分:0)

HealthKit不需要对相关类型进行授权,因为您的应用只能查询与其有权阅读的成员对象的相关性。在提到HKCorrelationType类时,文档似乎有点误导。