【发布时间】:2014-11-02 17:07:05
【问题描述】:
所以我试图在 Swift 中获取输入字段的文本。所以这就是我得到的
class ViewController: UIViewController {
@IBOutlet var passwordField: UITextField!
@IBOutlet var usernameField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//Try to log user in by default
let user = usernameField.text
let password = passwordField.text
一切看起来都不错(我知道我没有关闭类,我只是将它直接拉出来),当我去运行它时,我得到了
致命错误:在展开可选值时意外发现 nil (lldb)
和
(您必须在新标签页中打开图片才能看到它)
我将输入字段与 IBOutlet 成功绑定,我知道。有任何想法吗?
【问题讨论】:
-
问题似乎是 usernameField 在您尝试访问它时为零,因此尝试访问 .text 失败。我个人觉得这很令人惊讶,因为它似乎应该在调用 viewDidLoad 时分配。 (除非这些字段实际上不在视图中)。在任何情况下,使用条件展开来避免错误。附带说明一下,为什么要检查 viewDidLoad 开头的值?那时似乎不太可能有任何文字。