我有一个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"密码是必需的"
怎么可能????
答案 0 :(得分:0)
如果第一个 guard let
出现问题,我们会打印"电子邮件地址是必需的" 并返回。
因此,永远不会遇到第二 guard let
并且"密码是必需的"从未打印过。
您的代码将从不打印两个消息;这是不可能的,就是你编写代码的方式。
因此,我们必须得出结论,第一个guard let
中的一个测试失败了。但是你没有提供足够的信息让我们知道为什么会这样。也许emailTextField
是nil
?也许showMessage
没有做你认为它做的事情?你可能会在这里做出错误假设很多。但是你的代码的逻辑是清楚的。