0
)で、互換性のないユニットのエラーを変換しようとしました。' NSInvalidArgumentException 'というエラーが発生しました。 '行の 'HealthKit Statisticsクエリ(互換性のないユニットを変換しようとしました。
:let caloriesUnit = HKUnit.countUnit()
が、それは別の何かであるべき:
let numberOfCalories = Int(sumQuantity.doubleValueForUnit(self.caloriesUnit))
私のユニットは以下のように定義されていますか?どうすればカロリーの数を返すことができますか?
私の機能は次のとおりです。
func queryCaloriesSum() {
let caloriesQuantityType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned) //else //{ return nil }
let sumOption = HKStatisticsOptions.CumulativeSum
let statisticsSumQuery = HKStatisticsQuery(quantityType: caloriesQuantityType!, quantitySamplePredicate: nil, options: sumOption) { [unowned self] (query, result, error) in
if let sumQuantity = result?.sumQuantity() {
// let headerView = self.tableView.dequeueReusableCellWithIdentifier(self.totalStepsCellIdentifier)! as UITableViewCell
let numberOfCalories = Int(sumQuantity.doubleValueForUnit(self.caloriesUnit))
print(numberOfCalories)
}
}
healthStore.executeQuery(statisticsSumQuery)
print(statisticsSumQuery)
}
同じエラーが発生します。それは私の知る限り、ラベルを変更するだけで、コードとの違いはありませんでした。私は 'カロリー= HKUnit.countUnit()'を試しました。運がない。ありがとうございます - 私は初心者ですので、おそらく私はあなたのヒントを誤解しましたか? –
PS私はまた、 'class func calorie() - > Self'をページの先頭に追加しようとしました。しかし、それはうまくいかなかった。その宣言にどこに留意すべきですか? –
@DimitriT、**あなたは何をしましたか?** let 'caloriesUnit = HKUnit.countUnit() 'を' caloriesUnit = HKUnit.calorieUnit() 'または' let caloriesUnit = HKUnit.kilocalorieUnit() 'に変更する必要があります。 – user28434