Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift致命错误:在展开可选值时意外发现nil_Ios_String_Swift_Fatal Error - Fatal编程技术网

Ios Swift致命错误:在展开可选值时意外发现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

我有textfield,我需要在session值中输入,当我添加时,会给我

致命错误:在展开可选值时意外发现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

}
@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”。更新答案@埃里克,是的,我忘了用“如果让”。更新答案!