0

我的uiswitch有问题。我需要知道应用程序第一次运行时 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 而不会出现该错误?

4

2 回答 2

2

你必须打电话给超级。所有 IBOutlets 都是隐式展开的可选。nil直到被awakeFronNib调用。如果您在此之前尝试访问其中一个,则会出现异常。
还要验证开关的插座是否已连接。

 override func viewDidLoad() {
  super.viewDidLoad()
     if switch1.on {
        print("Switch is on")
    }
    else {
         print("Switch is off"
          }
    }
于 2016-02-23T11:36:55.953 回答
1

可能是您的 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")   
}
于 2016-02-23T11:34:07.907 回答