我有textfield,我需要把内部会话值,当我添加给我
致命错误:在展开Optional值时意外发现nil
错误
我的代码在这里
@IBOutlet weak var discountField:UITextField!
func textFieldDidEndEditing(textField: MPGTextField_Swift, withSelection data: Dictionary<String,AnyObject>){
let displayDiscount : AnyObject? = data["discount"]
let addClientDiscount:String = (displayDiscount as? String)!
prefs.setObject(addClientDiscount, forKey: "addClientDiscount")
self.discountField.text = "\(addClientDiscount)" // THIS LINE GIVES ERROR
}
还有原谅!在引用Outlets时
谢谢
2 回答
处理您的错误行,如下所示:
如果
data["discount"]
有值,它将被分配给文本字段,否则将使用空字符串 . 但它会避免由于nil
值导致的崩溃 .正如许多其他人所建议的那样,首先检查您的IBOutlet连接 .
如果它设置正确,那么把'?'在addClientDiscount之后:
因为如果这一行
给出
nil
然后可能会发生崩溃 .所以要绕过那次崩溃'?'
UPDATE 正如Eric D.所建议的,我们也可以这样做: