从HealthKit提取背景

时间:2018-12-17 13:37:04

标签: ios objective-c iphone health-kit

我正在从应用程序中的保健工具包中读取心率。但是应用程序尝试读取最新的心跳率,但无法读取。当我打开医疗工具包应用程序,然后打开我的应用程序时,只有它会读取最新的心率。 使用HKAnchoredObjectQuery来获取健康工具包数据。

所以请任何人提出解决方案。

1 个答案:

答案 0 :(得分:0)

Raywonderlich提供了一个很好的教程。我希望这能帮到您。 这是链接https://www.raywenderlich.com/459-healthkit-tutorial-with-swift-getting-started 并在这里获取最新数据是函数

class func getMostRecentSample(for sampleType: HKSampleType,
                               completion: @escaping (HKQuantitySample?, Error?) -> Swift.Void) {

//1. Use HKQuery to load the most recent samples.  
let mostRecentPredicate = HKQuery.predicateForSamples(withStart: Date.distantPast,
                                                      end: Date(),
                                                      options: .strictEndDate)

let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate,
                                      ascending: false)

let limit = 1

let sampleQuery = HKSampleQuery(sampleType: sampleType,
                                predicate: mostRecentPredicate,
                                limit: limit,
                                sortDescriptors: [sortDescriptor]) { (query, samples, error) in

    //2. Always dispatch to the main thread when complete.
    DispatchQueue.main.async {

      guard let samples = samples,
            let mostRecentSample = samples.first as? HKQuantitySample else {

            completion(nil, error)
            return
      }

      completion(mostRecentSample, nil)
    }
  }

HKHealthStore().execute(sampleQuery)
}