gpt4 book ai didi

swift - 用于检查可选值的 uitextfield 类型的非可选表达式

转载 作者:行者123 更新时间:2023-11-28 10:16:10 26 4
gpt4 key购买 nike

我正在做一个 UIAlertController,我收到了这条消息:“用于检查选项的 uitextfield 类型的非可选表达式”。这是我有“if let my field”的那一行。

我得到了这段代码:

let alertController = UIAlertController(title: "Adding", message: "Type something", preferredStyle: UIAlertControllerStyle.alert)
let DestructiveAction = UIAlertAction(title: "Confirm", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in

if let field : UITextField = (alertController.textFields? [0])! as UITextField {

if field.text != "" {
//my actions
}

}
let okAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default) { (result : UIAlertAction) -> Void in
}
alertController.addTextField { (textField) in
textField.placeholder = "Type designation here"

}
alertController.addAction(okAction)
alertController.addAction(DestructiveAction)
self.present(alertController, animated: true, completion: nil)
}

谁能告诉我如何删除此警告?我试图删除“!”没有成功。

最佳答案

您被迫解包该值,因此它是非可选的。这就是消息告诉您的内容。

由于您已经明确地将文本字段添加到警报 Controller 中,因此您不需要任何检查并且可以缩短代码:

let field  = alertController.textFields![0] // or textFields.first!

没有类型注释,没有类型转换,编译器可以推断类型。

检查空字符串还有一个更方便的语法:

if !field.text.isEmpty { ...

关于swift - 用于检查可选值的 uitextfield 类型的非可选表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41344877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com