Swift 检查 viewDidLoad 上的 uiswitch 状态

Swift check uiswitch status on viewDidLoad

我对 uiswitch 有疑问。我需要知道当 app 运行 第一次使用时 uiswitch 是打开还是关闭。 我试过这段代码:

     @IBOutlet  weak var switch1: UISwitch!


      override func viewDidLoad() {
      super.viewDidLoad()
     if switch1.on {
        print("Switch is on")

    }
    else {


       print("Switch is off")
                }
    }

但每次我收到此错误:

  fatal error: unexpectedly found nil while unwrapping an Optional value

如何在不出现该错误的情况下打开 uiswitch?

可能是您的 switch1 没有连接到故事板或 xib 中的 UISwitch。

if let switch = switch1 {
  if switch.on {
     print("switch is on")
  } else {
     print("switch is off")
  }
} else {
   println("Where's the switch")   
}

你必须调用super。所有 IBOutlets 都是隐式解包可选的。在调用 awakeFronNib 之前,它们是 nil。如果您在此之前尝试访问其中之一,则会出现异常。
还要验证开关的插座是否已连接。

 override func viewDidLoad() {
  super.viewDidLoad()
     if switch1.on {
        print("Switch is on")
    }
    else {
         print("Switch is off"
          }
    }