我尝试获取授权以保存HKQuantityTypeIdentifierBodyMass:
和HKCharacteristicTypeIdentifierDateOfBirth
我的代码是,
NSArray *readTypes = @[[HKObjectType
characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierDateOfBirth]];
NSArray *writeTypes = @[[HKObjectType
quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass]];
[self.healthStore requestAuthorizationToShareTypes:[NSSet setWithArray:readTypes]
readTypes:[NSSet setWithArray:writeTypes] completion:nil];
当我运行此代码时,我得到了例外:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'不允许共享以下类型的授权:HKCharacteristicTypeIdentifierDateOfBirth'。
我正在iOS 9.2
和Xcode 7.2
中投放。任何帮助表示赞赏。
答案 0 :(得分:2)
根据requestAuthorizationToShareTypes
的文档 typesToShare包含一个包含您要共享的数据类型的集合。该集合可以包含HKSampleType
类
typesToRead包含一个包含要读取的数据类型的集合。该集合可以包含HKObjectType
类
所以在你的情况下,
NSArray *readTypes = @[[HKObjectType
characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierDateOfBirth]];
NSArray *writeTypes = @[[HKObjectType
quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass]];
尝试,
[self.healthStore requestAuthorizationToShareTypes:[NSSet setWithArray:writeTypes]
readTypes:[NSSet setWithArray:readTypes] completion:nil];
或尝试
NSArray *readTypes = @[[HKObjectType
characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierDateOfBirth], [HKObjectType
quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass]];
[self.healthStore requestAuthorizationToShareTypes:nil
readTypes:[NSSet setWithArray:readTypes] completion:nil];