快速检查viewDidLoad上的uiswitch状态

时间:2016-02-23 10:37:33

标签: ios swift uiswitch viewdidload unwrap

我对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而不会出现错误?

2 个答案:

答案 0 :(得分: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")   
}

答案 1 :(得分:1)

你必须打电话给超级。所有IBOutlet都是隐式解包的可选项。直到nil被调用为awakeFronNib。如果您在此之前尝试访问其中一个,则会出现例外情况 还要确认交换机的插座已连接。

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