[英]How can I get daily average steps form HealthKit
我試圖顯示用戶每天的步數。 但是真的不知道如何管理這個。
我已經有了這個代碼:
let endDate = NSDate()
let startDate = NSCalendar.currentCalendar().dateByAddingUnit(.CalendarUnitMonth, value: -1, toDate: endDate, options: nil)
let weightSampleType = HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)
let predicate = HKQuery.predicateForSamplesWithStartDate(startDate, endDate: endDate, options: .None)
let query = HKSampleQuery(sampleType: weightSampleType, predicate: predicate, limit: 0, sortDescriptors: nil, resultsHandler: {
(query, results, error) in
if results == nil {
println("There was an error running the query: \(error)")
}
dispatch_async(dispatch_get_main_queue()) {
var dailyAVG = Int()
var steps = results as [HKQuantitySample]
for var i = 0; i < results.count; i++
{
//results[i] add values to dailyAVG
}
}
})
self.healthKitStore.executeQuery(query)
據我所知,查詢獲取了所需的所有數據。 但我不知道如何從HKQuantitySample中獲取值。 所以我不能測試HKQuantitySample數組中是否有正確的值。
萬一其他人試圖以一種不那么可怕的方式解決這個問題......
目前,它看起來不像使用HKStatisticsQuery
或HKStatisticsCollectionQuery
可以獲得平均步數。 您只能在離散數據類型上使用HKStatisticsOptionDiscreteAverage
。 如果查看HKTypeIdentifiers
的標題,您將看到HKQuantityTypeIdentifierStepCount
是累積數據類型。
如果您嘗試獲取平均步數,Xcode會吐出:統計選項HKStatisticsOptionDiscreteAverage與累積數據類型HKQuantityTypeIdentifierStepCount不兼容
獲取用戶已執行的步驟總數。 您可以指定兩個日期之間的時間段。 將總步數除以兩天之間的天數。
您需要遍歷steps
而不是results
,然后使用每個HKQuantitySample
結果的quantity
屬性來獲取該樣本中的步驟數,例如:
var dailyAVG:Double = 0
for steps in results as [HKQuantitySample]
{
// add values to dailyAVG
dailyAVG += steps.quantity.doubleValueForUnit(HKUnit.countUnit())
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.