UITextField没有读取值

时间:2016-04-10 23:09:06

标签: ios swift

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var _email: MaterialField!

    @IBOutlet weak var _pass: MaterialField!

    @IBOutlet weak var _signIn: UIButton!


    @IBAction func attemptLoginWithEmail(sender : UIButton!) {

        if let email = _email.text where email != "", let password = _pass.text where password != "" {

            print(email)
        }

}

程序不断崩溃,_email.text和_pass.text继续返回nil。尝试了几个小时,但无法让它工作。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

只需在对象准备时删除关键字,现在运行您的项目就可以了。

注意

强大的参考(在大多数情况下您会使用)意味着您想拥有"拥有"您使用此属性/变量引用的对象。只要您使用强引用指向它,编译器就会注意您分配给此属性的任何对象都不会被销毁。只有将属性设置为nil后,对象才会被销毁(除非一个或多个其他对象也拥有对它的强引用)。

相反,如果参考较弱,则表示您不想控制对象的生命周期。您引用弱的对象只会继续存在,因为至少有一个其他对象对它有强烈的引用。一旦不再是这种情况,对象就会被破坏,你的弱属性将自动设置为nil。 iOS中最常见的弱引用用例是:

1。)委托属性,通常被弱引用以避免保留周期,

2。)视图控制器主视图的子视图/控件,因为这些视图已经被主视图强烈保存。

答案 1 :(得分:0)

我不确定它是什么但是我删除了func attemptLogin并使另一个函数完全相同,引用相同的按钮并且它有效。感谢那些评论过的人