2016-12-15 7 views
-1

私はIOSアプリケーション用にSwiftでアプリケーションを構築しています。私はちょうどHealthkitの最後に保存された心拍数を表示したい。誰かがここで私を助けることができる?速やかにHealthkitに保存された最後の心拍数を表示します

私のAuthorizationリクエスト:

static func authorizeHealthKit() { 

let HeartRateData: Set = [ 
    HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate)!, 
    ] 
HealthStore.requestAuthorization(toShare: HeartRateData, read: HeartRateData) {_,_ in } 

} 

    @IBAction func authorizeTapped(_ sender: AnyObject) { 
     HeartrateViewController.authorizeHealthKit() 
    } 

のget心拍数:

func fetchHeartRateWithCompletionHandler (_ completionHandler: @escaping (Double?, NSError?)->()) { 

    let now = Date() 
    let startDate = now 
    let endDate = now 

let HeartRateSampleType = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.heartRate) 
let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate) 

let HeartRate = HKStatisticsQuery(quantityType: HeartRateSampleType!, quantitySamplePredicate: predicate, options: .cumulativeSum) 
{ query, result, error in 
    if result != nil { 
     completionHandler(nil, error as NSError?) 
     return 
    } 

    var HeartRateData = 0.0 

    if let quantitiy = result!.sumQuantity() { 
     let heartRateUnit = HKUnit(from: "count/min") 
     HeartRateData = quantitiy.doubleValue(for: heartRateUnit) 
    } 

    completionHandler(HeartRateData, error as NSError?) 

    } 
    HeartRateTextField.text = String (describing: HeartRate) 



} 

が、それは心拍数のテキストフィールドには何も表示されません。

+0

少なくともコードを書いて、自分で研究してみてください。あなたは何を探しましたか?何を試しましたか?あなたはどんな問題に取り組んでいますか? – Damien

+0

この[post](http://stackoverflow.com/questions/37229992/how-to-read-healthkit-heartrate-data)を参照してください。それは助ける必要があります –

+0

私の質問に私のコードを追加 –

答えて

0

クエリを実行していますか?

また、作成するクエリはあまり効率的ではありません。 開始日と終了日が同じで、述語の間にheartRateサンプルが見つかりません。 最新の心拍数のサンプルをお探しの場合は、anchoredObjectQueryをご覧ください。

関連する問題