ios - 真机上Glance访问IBOutlet时出现WatchKit "unexpectedly found nil while unwrapping an Optional value"

标签 ios swift watchkit

我有一个 Glance 和一些 WKInterfaceLabel。根据某些条件,我在 override func willActivate() 中对它们使用 setHidden()

class GlanceController: WKInterfaceController {
  @IBOutlet weak var lName: WKInterfaceLabel!
  ...

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
    if(conditions) {
        lName.setHidden(false)
    } else {
        lName.setHidden(true)
    }
  }
}

这在模拟器中有效,但在实际 watch 上,我收到 fatal error :在 lName.setHidden() 解包可选值时意外发现 nil

有人看过这个吗?

最佳答案

由于您的“lName”被声明为显式解包可选,因此按照以下方式访问变量会更安全 -

   if let validLName = lName {
     if(conditions) {
        validLName.setHidden(false)
     } else {
        validLName.setHidden(true)
     }
   }
}

关于ios - 真机上Glance访问IBOutlet时出现WatchKit "unexpectedly found nil while unwrapping an Optional value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798114/

相关文章:

ios - 我如何从 watch 应用程序检查用户是否登录到电话应用程序

ios - "Install of Apple Watch Application never finished"向设备部署 watch 套件应用程序时出错

ios - 如何从 WatchKit Extension 调用 CoreData 代理框架?

ios - 无法附加到 pid : “16541” unable to attach ios simulator

ios - 并非在所有情况下都调用 Swift BLE 函数 didConnectPeripheral

ios - NSFileManager.defaultManager().createFileAtPath() 返回 false

ios - 如何实现代码以在 Swift for iOS 中在 MapKit 中进行可拖动的注释?

swift - 如何移动相机节点以跟随平面节点

ios - 具有自定义网址回调和自定义搜索网址的应用

iOS:当我需要在 View 对用户可见后执行某些操作时要覆盖哪个函数?