如何确定HKQuantitySample数量类型?

How to determine HKQuantitySample quantityType?

我正在尝试确定哪种 HKQuantityTypeIdentifier 与特定 Health Kit 示例中提供的测量值匹配。为了确定这一点,我尝试了以下方法:

if(hkSample.quantityType == HKQuantityTypeIdentifierDistanceCycling) ...

if([hkSample.quantityType isEqual: HKQuantityTypeIdentifierDistanceCycling]) ...

if([hkSample.quantityType isEqualToString: HKQuantityTypeIdentifierDistanceCycling]) ...

前两个选项 运行 但即使类型应该匹配也给出否定结果,最后一个选项给出 运行 次未知方法的 NSException 错误。确定哪种类型是 HKQuantitySample 类型的正确方法是什么?

quantityType 是 HKQuantityType,不是字符串,所以它不会响应 -isEqualToString:。您需要通过 -isEqual: 将其与另一个 HKQuantityType 进行比较,如下所示:

if ([hkSample.quantityType isEqual:[HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierDistanceCycling]])