快速检查uiswitch状态viewDidLoad

问题描述:

我有一个uiswitch问题。我需要知道当应用第一次运行时uiswitch是打开还是关闭。 我试图用这个代码:快速检查uiswitch状态viewDidLoad

 @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

验证您的IBOutlet的连接,它可能被破坏。 – Moritz

+1

您的代码中存在错误。请参阅其他情况下的“打印”行。 –

+2

@HammadRaza:这将是一个编译错误,而不是运行时。 OP必须在这里粘贴错误 – iAnurag

可能是您的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") 
} 
+0

这解决了我的问题让switch = switch1,谢谢 – Swift1

您必须致电super。所有IBOutlets都是隐式解包的可选项。 nil直到awakeFronNib被调用。如果您在此之前尝试访问其中的一个,则会发生异常。
同时确认连接到交换机的插座。

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