Search code examples
iosswifthealthkit

Swift Heart Rate Variability result conversion from ms to double


So I'm trying to make an app where the user's heart rate variability is fetched and displayed to them. The issue is that Im not really sure how to convert the result I get from my query to a double, I have tried using

let quantity: HKQuantity? = result?.averageQuantity()
beats = quantity?.doubleValue(for: HKUnit.count().unitDivided(by: HKUnit.minute()))
print(beats)

but I would get the error "reason: 'Attempt to convert incompatible units: ms, count/min'" which is expected because the beats line is intended for average heart rate not heart rate variability. If i print out the quantity variable I do get the result back in this format "Optional(65.24 ms)".

My question is how do I properly convert the result from the first line from ms to a double? Or how can i display it on a label? Because in the ms form it won't work.

Thank for the help in advance guys


Solution

  • Found a solution. This is how to convert the heart rate variability result from MS to a double value. You can then change it to a string

    beats = quantity?.doubleValue(for: HKUnit.secondUnit(with: .milli))