2017-10-19 7 views
0

Le code échantillon d'Apple enregistre une fréquence cardiaque moyenne HKQuantitySample à une séance d'entraînement via la méthode add, mais pour un entraînement donné, j'essaie de sauvegarder toutes les valeurs de fréquence cardiaque prises pendant l'entraînement, à savoir [HKQuantitySample] comment puis-je faire cela? Voici mon code ajoutant la première valeur juste pour tester, mais je veux les ajouter tous?Comment enregistrer une série de HKQuantitySamples (fréquence cardiaque) pour un entraînement

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

Je pense qu'il vous manque du temps quand chaque fréquence cardiaque a été enregistrée ... avez-vous cela? – Ladislav

+0

Eh bien, je peux obtenir en utilisant juste 'Date', mais comment cela sera incorporé ici? – GarySabo

Répondre

2

Vous avez déjà heartRateValues comme [HKQuantitySample] donc il suffit de faire:

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 
     } 


     } 
    } 

Fondamentalement, vous créez un tableau d'échantillons ajouter totalEnergyBurnedSample et totalDistanceSample puis toute tableau heartRateValues et passe ensuite cet argument sample dans la méthode healthStore.add.