我有一个简单的登录屏幕,并且可以防止丢失数据,如下所示:

@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
        }
....


我在设备上加载了该应用程序,然后按登录并收到警报“需要电子邮件地址”。我输入我的电子邮件地址,然后按登录并收到警报“需要电子邮件地址”,而不是“需要密码”

这个怎么可能???

最佳答案

如果第一个guard let出现问题,我们将打印“需要电子邮件地址”并返回。

因此,永远不会遇到第二个guard let,并且永远不会打印“需要密码”。

您的代码将永远不会同时显示两条消息。编写代码的方式是不可能的。

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

10-06 05:46
查看更多