セッション中に実行されたユーザーの手順を追跡しようとしています。これらのセッションは、30秒から30分の間のどこでもかまいません。私はセッションを開始して歩き始め、1分後にセッションを中止します。これは常に0ステップを返します。ここに私が走っているコードがあります。iOS HealthKitセッション中にユーザーの手順を追跡する
func readUserSteps(startDate:NSDate, endDate:NSDate) {
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 {
print("There was an error running the query: \(error)")
} else {
var stepCount:Double = 0
for steps in results as! [HKQuantitySample]
{
stepCount += steps.quantity.doubleValueForUnit(HKUnit.countUnit())
}
print("Steps Taken: \(stepCount)")
}
})
self.healthKitStore.executeQuery(query)
}
私はそうと、現在の日付を保存:let startTime = NSDate()
セッションの開始を表し、ユーザーは、私がようにセッションの終了を保存したセッションを停止し、一度する:let endTime = NSDate()
を。次に、これら2つの変数を作成して上記の関数を呼び出します。残念ながら、 'stepCount'は常に0を返しています。私はここで間違っていますか?