Ios 尝试从手表读取心率时出错
我正在尝试构建一个应用程序,从HealthKit读取心率数据并将其显示在表中,但每当我运行代码时,它都会终止,因为它在以下方法中发现一个nil: 扩展接口控制器:HeartRateDelegate{Ios 尝试从手表读取心率时出错,ios,swift,Ios,Swift,我正在尝试构建一个应用程序,从HealthKit读取心率数据并将其显示在表中,但每当我运行代码时,它都会终止,因为它在以下方法中发现一个nil: 扩展接口控制器:HeartRateDelegate{ func heartRateUpdated(heartRateSamples: [HKSample]) { guard let heartRateSamples = heartRateSamples as? [HKQuantitySample] else { return
func heartRateUpdated(heartRateSamples: [HKSample]) {
guard let heartRateSamples = heartRateSamples as? [HKQuantitySample] else {
return
}
DispatchQueue.main.async {
self.heartRateSamples = heartRateSamples
guard let sample = heartRateSamples.first else {
return
}
let value = sample.quantity.doubleValue(for: HKUnit(from: "count/min"))
let heartRateString = String(format: "%.00f", value)
self.heartRateLabel.setText(heartRateString)//where it finds the nil
}
}
有没有一种方法可以将这一行包装成可选的?这可能不用说,但我对iOS编程相当陌生
编辑:heartRateLabel是我在故事板中连接的一个插座(全部在watch interface controller中),但我认为我没有正确初始化它。在interface controller类中,我编写了:
类InterfaceController:WKInterfaceController{
@IBOutlet var heartRateLabel: WKInterfaceLabel!
@IBOutlet var workoutButton: WKInterfaceButton!
let healthKitManager = HealthKitManager.sharedInstance
var isWorkoutInProgress = false
var workoutSession: HKWorkoutSession?
var workoutStartDate: Date?
var heartRateQuery: HKQuery?
var heartRateSamples: [HKQuantitySample] = [HKQuantitySample]()
我是否需要在此步骤中对其进行初始化?语法是什么?是否为可选的
heartRateLabel
即当您进行此打印时,是否将其初始化为UILabel?
您得到的是什么?heartRateLabel是一个插座吗?您在故事板中连接了它吗?@Paolo我编辑了代码,以显示我在界面控制器中初始化heartRateLabel的位置它是heartRateLabel
一个可选的?即当您进行此打印(值)时,它是否初始化为UILabel?
你得到了什么?heartRateLabel是一个插座吗?你把它连接到你的故事板上了吗?@Paolo我编辑了代码,显示了我在Interface Controller中初始化heartRateLabel的位置