iOS8在iPad Air上使用HealthKit时如何修复“此设备上的健康数据不可用”

Posted

技术标签:

【中文标题】iOS8在iPad Air上使用HealthKit时如何修复“此设备上的健康数据不可用”【英文标题】:iOS8 how to fix "Health data is unavailable on this device" when using HealthKit on iPad Air 【发布时间】:2014-07-17 18:46:22 【问题描述】:

我正在尝试运行 WWDC 2014 中的“Fit”示例来查看 HealthKit。我正在使用更新到 ios8 beta3 的 iPad air。但是,当输入任何信息时,应用程序会因错误而崩溃:

Error Domain=com.apple.healthkit Code=1 "Health data is unavailable on this device"

这是产生错误的方法示例

    - (void)saveHeightIntoHealthStore:(double)height 
        // Save the user's height into HealthKit.
        HKUnit *inchUnit = [HKUnit inchUnit];
        HKQuantity *heightQuantity = [HKQuantity quantityWithUnit:inchUnit doubleValue:height];

        HKQuantityType *heightType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeight];
        NSDate *now = [NSDate date];

        HKQuantitySample *heightSample = [HKQuantitySample quantitySampleWithType:heightType quantity:heightQuantity startDate:now endDate:now];

        [self.healthStore saveObject:heightSample withCompletion:^(BOOL success, NSError *error) 
            if (!success) 

//Error reported here

                NSLog(@"An error occured saving the height sample %@. In your app, try to handle this gracefully. The error was: %@.", heightSample, error);
                abort();
            
            [self updateUsersHeight];
        ];
    

【问题讨论】:

【参考方案1】:

HealthKit 在 iPad 上不可用,仅在 iPhone 和 iPod 上可用 - 就像 Passbook。

【讨论】:

来源?请漂亮 来自 HKHealthStore.h 标头:并非所有 iOS 设备都支持 HealthKit。在不受支持的设备上使用 HKHealthStore API 将导致 HKErrorHealthDataUnavailable 代码出错。在尝试使用框架的其他部分之前调用 isHealthDataAvailable。

以上是关于iOS8在iPad Air上使用HealthKit时如何修复“此设备上的健康数据不可用”的主要内容,如果未能解决你的问题,请参考以下文章

图像未在 iPad Air、iPad 3 等较新的 iPad 设备上显示,但在模拟器 iOS 8.1 上显示

iOS8 应用程序使用 HealthKit 在 Xcode6.0.1 上崩溃

哭瞎了一大波苹果iPad Air2零件又曝光

NSEntityDescription 仅在 iPad Air 7.1 上返回 nil

苹果ipad air2键盘往上怎么让它下来

如何从我的 AIR for iOS 游戏的兼容性中排除第一代 iPad?