作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个 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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!