如何在iOS应用程序中显示HealthKit数据?

如何在iOS应用程序中显示HealthKit数据?,ios,swift,healthkit,Ios,Swift,Healthkit,我正在摆弄HealthKit,我只想制作一个非常简单的应用程序,读取HealthKit消耗的活动热量,并将其打印到ViewController上。我不确定我是否在HealthManager类中正确访问数据,也不确定如何正确调用healthKit数据以在我的viewController中打印 我知道我必须创建一个类来验证用户是否允许应用程序访问healthKit数据。首先,我创建了一个名为HealthManager的类来解决我的第一个验证问题,我确信它可以正常工作: class HealthMan

我正在摆弄HealthKit,我只想制作一个非常简单的应用程序,读取HealthKit消耗的活动热量,并将其打印到ViewController上。我不确定我是否在HealthManager类中正确访问数据,也不确定如何正确调用healthKit数据以在我的viewController中打印

我知道我必须创建一个类来验证用户是否允许应用程序访问healthKit数据。首先,我创建了一个名为HealthManager的类来解决我的第一个验证问题,我确信它可以正常工作:

class HealthManager {

    let storage = HKHealthStore()

    init()
    {
        checkAuthorization()
    }

    func checkAuthorization() -> Bool {
        var isEnabled = true

        if HKHealthStore.isHealthDataAvailable() {

            // Explicitly requests calorie data
            let calories = NSSet(object: HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned)!)

            // Requests authorization for calorie data
            storage.requestAuthorizationToShareTypes(nil, readTypes: calories as? Set<HKObjectType>) { (success, error) -> Void in
                isEnabled = success
            }
        }

        else {
            isEnabled = false
        }

        return isEnabled

    }

}
class-HealthManager{
let storage=HKHealthStore()
init()
{
检查授权()
}
func checkAuthorization()->Bool{
var isEnabled=true
如果HKHealthStore.isHealthDataAvailable()可用{
//明确请求卡路里数据
让卡路里=NSSet(对象:HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiviteEnergyBurned)!)
//请求对卡路里数据的授权
storage.requestAuthorizationToShareTypes(nil,readTypes:carries as?Set){(success,error)->Void in
成功
}
}
否则{
isEnabled=false
}
返回被禁止
}
}
但我不知道下一步该怎么办。我在哪里以及如何阅读当前课程中消耗的活动卡路里?我将在哪里以字符串形式返回值,如何将所有这些信息传递到我的viewController中


感谢您的帮助

您可以使用健康工具包访问以下信息。 -出生日期 -血型 -生物制品 -体重 -高度 -修井类型

我认为最好创建新的独立的“HelathKitHelper”单例类,并在此类中编写所有逻辑

通过它,您可以使用不同的-2控制器类调用相同的代码

一些教程链接


希望这对你有帮助

我们在为个人数据中间件Pryv构建的HealthKit桥接器中实现了类似的功能。 我们已经在一个示例应用程序中对其进行了测试,该应用程序允许用户授权其他应用程序向Apple HealthKit读取/写入数据并显示数据。 您可以在此处找到代码:。
我们用于个人数据收集和同意管理的中间件是开源的,所以请随意使用它,以及我们的示例应用程序:

谢谢,我一定会尝试!我将如何在viewController中调用上述singleton类以将其打印到屏幕上?您可以为数据创建模型类,并在模型类中存储所有必需的健康相关信息。您可以创建一些方法,如-(ModelClass*)getData;并从视图控制器调用此方法。