我正在尝试从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)
的许可?
答案 0 :(得分:0)
HealthKit不需要对相关类型进行授权,因为您的应用只能查询与其有权阅读的成员对象的相关性。在提到HKCorrelationType
类时,文档似乎有点误导。