我有一个简单的登录屏幕,并且可以防止丢失数据,如下所示:
@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
中的一个测试失败了。但是您没有提供足够的信息让我们知道为什么会这样。也许emailTextField
是nil
?也许showMessage
没有按照您的想法做?您在这里可能会做出很多错误的假设。但是代码的逻辑很清楚。