Я пытаюсь получить статистический запрос данных Heart Rate в HealthKit.Swift 2.0: Чтение HealthKit HeartRate Data - неожиданно найдено нуль во время разворачивания необязательного
Ниже код компилируется, но приводит к следующей ошибке При вызове функции:
fatal error: unexpectedly found nil while unwrapping an Optional value
Ошибка происходит на этой линии:
let quantity : HKQuantity = result!.averageQuantity()!;
Почему результат возвращающего ноль? Я подтвердил, что данные Heart Rate доступны в HealthKit, поэтому я не думаю, что это потому, что данных в запросе не существует.
Любые идеи? Есть лучший способ сделать это?
код ниже:
func readHeartRate() {
let sampleType = HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!
let nowDate = NSDate()
let calendar = NSCalendar.autoupdatingCurrentCalendar()
let yearMonthDay: NSCalendarUnit = [NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day]
let components: NSDateComponents = calendar.components(yearMonthDay , fromDate: nowDate)
let beginOfDay : NSDate = calendar.dateFromComponents(components)!
let predicate : NSPredicate = HKQuery.predicateForSamplesWithStartDate(beginOfDay, endDate: nowDate, options: HKQueryOptions.StrictStartDate)
let squery = HKStatisticsQuery(quantityType: sampleType, quantitySamplePredicate: predicate, options: HKStatisticsOptions.None, completionHandler: { (squery, result, error) -> Void in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
let quantity : HKQuantity = result!.averageQuantity()!;
let beats : Double = quantity.doubleValueForUnit(self.heartRateUnit)
print(beats)
})
})
healthKitStore.executeQuery(squery)
}
Вы посмотрели на 'error'? – jtbandes
Ошибка возникает, потому что «результат» равен нулю. Мой вопрос: почему запрос возвращает нуль, когда должны быть данные? – 0000101010
Правильно, но есть параметр 'error', который должен рассказать вам, что происходит. – jtbandes