Есть еще один вопрос! Я пытаюсь рассчитать общее время сна из приложения здоровья. Я могу получить информацию, используя следующее:
func readSleepAnalysis(date: Date) {
if let mindfulType = HKObjectType.categoryType(forIdentifier: HKCategoryTypeIdentifier.sleepAnalysis) {
let startDate = convertStartDate(StartDate: date)
let endDate = convertEndDate(EndDate: date)
let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: .strictStartDate)
let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false)
let query = HKSampleQuery(sampleType: mindfulType, predicate: predicate, limit: 30, sortDescriptors: [sortDescriptor]) { (query, tmpResult, error) -> Void in
if error != nil {
print("Something went wrong getting sleep analysis: \(String(describing: error))")
return
}
if let result = tmpResult {
for item in result {
if let sample = item as? HKCategorySample {
let value = (sample.value == HKCategoryValueSleepAnalysis.inBed.rawValue) ? "InBed" : "Asleep"
print("Healthkit sleep: \(sample.startDate) \(sample.endDate) value: \(value)")
}
}
}
}
healthKit.execute(query)
}
}
Тем не менее, я получаю:
сон Healthkit: 2020-04-13 01:27:55 +0000 2020- 04-13 11:49:51 +0000 значение: InBed
Спящий аптечка: 2020-04-13 02:46:41 +0000 2020-04-13 11:49:51 +0000 значение: Спящий
Healthkit sleep: 2020-04-12 07:48:06 +0000 2020-04-12 12:32:59 +0000 значение: Спит
Healthkit sleep: 2020-04-12 04 : 18: 33 +0000 2020-04-12 07:17:29 +0000 значение: уснул
Я пытаюсь получить только сумму времени сна в часах: минутах.
Любые предложения или комментарии, как всегда, с благодарностью.