ios - 如果用户在钥匙串(keychain)中登录,则 sender.tag 不设置为 1?

标签 ios swift if-statement authentication keychain

我已经为登录按钮操作创建了这个逻辑。如果用户已登录并将sender.tag设置为loginButtonTag = 1,我的问题是它不会在“else if sender.tag == loginButtonTag”中运行此代码。

@IBAction func signedInAction(sender: AnyObject)
{

    if (txtfUsername.text == "" || txtfPassword.text == "") {
         alert()
        return;
    }

    txtfUsername.resignFirstResponder()
    txtfPassword.resignFirstResponder()

    if sender.tag == createLoginButtonTag {
        let hasLoginKey = NSUserDefaults.standardUserDefaults().boolForKey("hasLoginKey")
        if hasLoginKey == false {                NSUserDefaults.standardUserDefaults().setValue(self.txtfUsername.text, forKey: "username")
        }


        keychain.set(txtfUsername.text!, forKey:kSecValueData as String)
        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "hasLoginKey")
        NSUserDefaults.standardUserDefaults().synchronize()
        loginButton.tag = 1

        performSegueWithIdentifier("dismissLogin", sender: self)
    }
    else if sender.tag == loginButtonTag
    {
        if checkLogin(txtfUsername.text!, password: txtfPassword.text!)
        {
            performSegueWithIdentifier("dismissLogin", sender: self)
        }
        else
        {
            alert()
        }
    }
}

最佳答案

请检查以下声明:

  1. loginButtonTag 确实具有“1”值
  2. 检查在您的 vc 生命周期中,任何方法都不会更改您的登录按钮的标签。
  3. 检查登录按钮的 socket 连接 - 它可能为零,因此未设置标签。

此代码段不起作用的原因有很多。

更新:

如果您使用相同的按钮,请尝试

sender.tag = loginButtonTag

而不是

loginButton.tag = 1

希望这有帮助。

关于ios - 如果用户在钥匙串(keychain)中登录,则 sender.tag 不设置为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484546/

相关文章:

ios - SwiftUI - 所有可见的 3 列/侧边栏布局?

javascript - `if` 无法检查 <img> src 的值

javascript - 逻辑运算符两侧的 if 语句中的多个条件

ios - UICollectionView 中的单边方向滚动?

ios - 在 iOS 上保存 xml 文件(pugiXml 和 Cocos2d-x)

swift - 动态设置多个值

Java - 双重比较

iphone - xCode动态添加字段

ios - 从 CNContactRelation 获取 CNContact

ios - 从 NSPredicate 获取意外的表达式错误