快速检查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没有得到这个错误?
答
可能是您的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"
}
}
验证您的IBOutlet的连接,它可能被破坏。 – Moritz
您的代码中存在错误。请参阅其他情况下的“打印”行。 –
@HammadRaza:这将是一个编译错误,而不是运行时。 OP必须在这里粘贴错误 – iAnurag