Ios Swift致命错误:在展开可选值时意外发现nil
我有textfield,我需要在session值中输入,当我添加时,会给我 致命错误:在展开可选值时意外发现nil 错误 我的密码在这里Ios Swift致命错误:在展开可选值时意外发现nil,ios,string,swift,fatal-error,Ios,String,Swift,Fatal Error,我有textfield,我需要在session值中输入,当我添加时,会给我 致命错误:在展开可选值时意外发现nil 错误 我的密码在这里 @IBOutlet weak var discountField:UITextField! func textFieldDidEndEditing(textField: MPGTextField_Swift, withSelection data: Dictionary<String,AnyObject>){ let displ
@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
}
@IBOutlet弱var折扣字段:UITextField!
func textField编辑(textField:MPGTextField_Swift,带选择数据:字典){
let displayDiscount:AnyObject?=数据[“折扣”]
让addClientDiscount:String=(显示折扣为?String)!
prefs.setObject(addClientDiscount,forKey:“addClientDiscount”)
self.discountField.text=“\(addClientDiscount)”//此行给出错误信息
}
也有财产!在参考网点
谢谢正如许多其他人建议的那样,首先检查您的IBOutlet连接 如果设置正确,则在addClientDiscount后面加上“?”,如下所示:
self.discountField.text = "\(addClientDiscount?)"
因为如果这条线
let displayDiscount : AnyObject? = data["discount"]
给出nil
则可能发生崩溃。所以要绕过那次撞车,把它放进去 更新 正如Eric D。 我们也可以这样做:
if let displayDiscount = data["discount"] {
let addClientDiscount = displayDiscount as! String
prefs.setObject(addClientDiscount!, forKey: "addClientDiscount")
self.discountField.text = "\(addClientDiscount!)"
}
正如许多其他人所建议的,首先检查您的IBOutlet连接 如果设置正确,则在addClientDiscount后面加上“?”,如下所示:
self.discountField.text = "\(addClientDiscount?)"
因为如果这条线
let displayDiscount : AnyObject? = data["discount"]
给出nil
则可能发生崩溃。所以要绕过那次撞车,把它放进去 更新 正如Eric D。 我们也可以这样做:
if let displayDiscount = data["discount"] {
let addClientDiscount = displayDiscount as! String
prefs.setObject(addClientDiscount!, forKey: "addClientDiscount")
self.discountField.text = "\(addClientDiscount!)"
}
按如下方式处理您的错误行:
self.discountField.text = data!["discount"] as? String ?? ""
如果
数据[“折扣”]
有一个值,它将被分配到文本字段,否则将使用空字符串。但它将避免由于nil
值而导致的崩溃 如下处理您的错误行:
self.discountField.text = data!["discount"] as? String ?? ""
如果
数据[“折扣”]
有一个值,它将被分配到文本字段,否则将使用空字符串。但它将避免由于nil
值而导致的崩溃 显示折扣字段的声明。。。您可能没有实例化它。@Woodstock更新了代码。您的IBOutlet可能没有正确连接到IB。@SwiftDeveloper您是否将折扣字段
链接到xib
或情节提要
正确?@SwiftDeveloper正在添加!如果没有使其正确引用,您必须检查您的IB
和discountField
之间是否存在链接。顺便说一句,您是否有多个文本字段
?显示折扣字段的声明。。。您可能没有实例化它。@Woodstock更新了代码。您的IBOutlet可能没有正确连接到IB。@SwiftDeveloper您是否将折扣字段
链接到xib
或情节提要
正确?@SwiftDeveloper正在添加!如果没有使其正确引用,您必须检查您的IB
和discountField
之间是否存在链接。顺便说一句,你有多个文本字段吗?@eric,是的,我忘了使用“if let”。更新答案@埃里克,是的,我忘了用“如果让”。更新答案!