2017-10-19 1 views
0

Apples Docs-Beispielcode speichert eine durchschnittliche Herzfrequenz HKQuantitySample zu einem Training über add Methode, aber für ein bestimmtes Training versuche ich alle Herzfrequenzwerte während gespeichert das Training, dh [HKQuantitySample] Wie kann ich das tun? Unten ist mein Code den ersten Wert nur zum Testen hinzufügen, aber ich möchte sie alle hinzufügen?So speichern Sie ein Array von HKQuantitySamples (Herzfrequenz) zu einem Training

var heartRateValues = [HKQuantitySample]() 

func processHeartRateSamples(_ samples: [HKQuantitySample]) { 
     for sample in samples { 
      heartRateValues.append(sample) 
     }  
    } 

private func addSamples(toWorkout workout: HKWorkout, from startDate: Date, to endDate: Date) { 
     // Create energy and distance samples 
     let totalEnergyBurnedSample = HKQuantitySample(type: HKQuantityType.activeEnergyBurned(), 
                 quantity: totalEnergyBurnedQuantity(), 
                 start: startDate, 
                 end: endDate) 

     let totalDistanceSample = HKQuantitySample(type: HKQuantityType.distanceWalkingRunning(), 
                quantity: totalDistanceQuantity(), 
                start: startDate, 
                end: endDate) 





     // Add samples to workout 
     healthStore.add([totalEnergyBurnedSample, totalDistanceSample, heartRateValues.first!], to: workout) { (success: Bool, error: Error?) in 
      guard success else { 
       print("Adding workout subsamples failed with error: \(String(describing: error))") 
       return 
      } 


      } 
     } 
+0

Ich denke, du verpasst Zeit, wenn jede Herzfrequenz aufgezeichnet wurde ... hast du das? – Ladislav

+0

gut kann ich nur mit "Date" bekommen, aber wie wird das hier aufgenommen? – GarySabo

Antwort

2

Sie haben bereits heartRateValues als [HKQuantitySample] so tun, nur:

private func addSamples(toWorkout workout: HKWorkout, from startDate: Date, to endDate: Date) { 
    // Create energy and distance samples 
    let totalEnergyBurnedSample = HKQuantitySample(type: HKQuantityType.activeEnergyBurned(), 
                quantity: totalEnergyBurnedQuantity(), 
                start: startDate, 
                end: endDate) 

    let totalDistanceSample = HKQuantitySample(type: HKQuantityType.distanceWalkingRunning(), 
               quantity: totalDistanceQuantity(), 
               start: startDate, 
               end: endDate) 

    let samples = [HKQuantitySample]() 
    samples.append(totalEnergyBurnedSample) 
    samples.append(totalDistanceSample) 
    samples.append(contentsOf: heartRateValues) 

    // Add samples to workout 
    healthStore.add(samples, to: workout) { (success: Bool, error: Error?) in 
     guard success else { 
      print("Adding workout subsamples failed with error: \(String(describing: error))") 
      return 
     } 


     } 
    } 

Im Grunde erstellen Sie eine Reihe von Proben hinzufügen totalEnergyBurnedSample und totalDistanceSample und dann ganze heartRateValues Array und dann passieren, dass sample Argument in healthStore.add Methode. ..

Verwandte Themen