【发布时间】:2018-11-28 16:55:57
【问题描述】:
单击按钮时出现以下错误
线程 1:致命错误:在展开可选值时意外发现 nil
以下是代码
@IBOutlet weak var UserId: UITextField!{
didSet{
UserId.setBottomBorder()
UserId.delegate = self
}
}
@IBOutlet weak var Password: UITextField!{
didSet{
Password.setBottomBorder()
Password.delegate = self
}
}
@IBAction func logincta(_ sender: Any) {
guard let _ = UserId.text, UserId.text?.characters.count != 0 else {
print("test")
return
}
}
但在以下 onchange 代码中可以正常工作
@IBAction func UserIdChanged(_ sender: Any) {
if UserId.text == "" {
UserId.setBottomBorder()
}
else{
UserId.setPurpleBottomBorder()
}
}
@IBAction func PasswordChanged(_ sender: Any) {
if Password.text == "" {
Password.setBottomBorder()
}
else{
Password.setPurpleBottomBorder()
}
}
我想知道它在 onchange 事件“if UserId.text ==”中是如何工作的,但不是在按钮点击中
【问题讨论】:
-
能否请您展示您的
setBottomBorder功能。 -
检查您的文本字段出口参考
-
但如果文本字段引用错误,它不应该在更改事件上工作......但它工作正常......只有在按钮点击我得到错误
-
@iPeter 以下是代码 func setBottomBorder(){ self.layer.shadowColor = UIColor(red:193/255 , green:193/255 , blue:193/255 , alpha:100 )。 cgColor self.layer.shadowOffset = CGSize(width: 0.0, height: 1.0) self.layer.shadowOpacity = 1.0 self.layer.shadowRadius = 0.0 }