![](/img/trans.png)
[英]HealthKit and Apple Watch - How to check if workout is running?
[英]How to access metaData of workout in healthkit using Swift
我可以獲取活動的基本數據,例如duration
, totalEnergyBurned
等。但是如何訪問諸如HKWasUserEntered
startDate
類的元數據?
到目前為止,這是我的代碼
var predicate = HKQuery.predicateForWorkoutsWithWorkoutActivityType(HKWorkoutActivityType.Cycling)
let sampleQuery = HKSampleQuery(sampleType: HKWorkoutType.workoutType(), predicate: predicate, limit: 0, sortDescriptors: [sortDescriptor])
{ (sampleQuery, results, error ) -> Void in
if let queryError = error {
print( "There was an error while reading the samples: \(queryError.localizedDescription)")
}
else
{
print(results!)
for samples: HKSample in results! {
var workout: HKWorkout = (samples as! HKWorkout)
print("workout Distance is \(workout.totalDistance)")
print("workout Energy Burned is \(workout.totalEnergyBurned)")
print("workout Duration in seconds is \(workout.duration)")
}
}
completion(results,error)
}
executeQuery(sampleQuery)
當我打印results
我得到這個回報
[(46)“健康”(9.3.2)元數據:{HKWasUserEntered = 1; } 2016-07-18 10:58:00 +0500 2016-07-18 11:58:00 +0500]
所以基本上我該如何從中獲取HKWasUserEntered
和日期?
請嘗試以下操作:
print("was user entered --> \(workout.metadata?[HKMetadataKeyWasUserEntered])")
HKSample
上有一個metadata
字典屬性。 您可以這樣打印值,例如:
print("workout was user entered \\(workout.metadata[HKWasUserEntered])")
我了解如何使用元數據。
if let metadata = workout.metadata {
if let mataTemperature = metadata[HKMetadataKeyWeatherTemperature] {
if let quantityTemperature = mataTemperature as? HKQuantity {
let celsius = quantityTemperature.doubleValue(for: HKUnit.degreeCelsius())
print(celsius)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.