警卫不要区分输入

时间:2018-04-16 21:44:21

标签: swift

我有一个SIMPLE登录屏幕,我正在防止丢失数据,如下所示:

@IBAction func btnLoginTapped(_ sender: Any)
    {
        guard let email = emailTextField.text, !email.isEmpty else
        {
            self.showMessage(messageToDisplay: "Email Address is required", title: "")
            return
        }

        guard let password = passwordTextField.text, !password.isEmpty else
        {
            self.showMessage(messageToDisplay: "Password is required", title: "")
            return
        }
....

我在我的设备上加载应用程序并按登录并获取警报"电子邮件地址是必需的"。我输入我的电子邮件地址并按登录并获取警报"电子邮件地址是必需的"和NOT"密码是必需的"

怎么可能????

1 个答案:

答案 0 :(得分:0)

如果第一个 guard let出现问题,我们会打印"电子邮件地址是必需的" 并返回

因此,永远不会遇到第二 guard let并且"密码是必需的"从未打印过。

您的代码将从不打印两个消息;这是不可能的,就是你编写代码的方式。

因此,我们必须得出结论,第一个guard let中的一个测试失败了。但是你没有提供足够的信息让我们知道为什么会这样。也许emailTextFieldnil?也许showMessage没有做你认为它做的事情?你可能会在这里做出错误假设很多。但是你的代码的逻辑是清楚的。