二进制运算符'=='不能应用于'Bool'和'String?'类型的操作数2020年为Swift

问题描述

我似乎无法弄清楚为什么等号运算符不起作用。

databaseManager.swift pic 1

image

这是我的代码:

@IBAction func LoginButton(_ sender: UIButton) {

    let Username = UsernameTextField.text;
    let Password = PasswordTextField.text;

    
    //Pull stored data from server
    let usernameStored = shareInstance.database?.executeUpdate("INSERT INTO Signups( Username,Password) VALUES(?,?)",withArgumentsIn: [Username,Password])
    shareInstance.database?.close()
    
    let passwordStored = shareInstance.database?.executeUpdate("INSERT INTO Signups( Username,Password])
    shareInstance.database?.close()
    
    if(usernameStored! == Username)
    {
        if(passwordStored! == Password)
        {
            //Login is successful.
        }
    }
}

解决方法

由于您在标题中共享的错误。看来usernameStoredBool,可能是在说执行的命令是否成功。您无法将其与用户名的String值进行比较。

您实际上是在问true是否等于"johnsmith"

检查executeUpdate()方法返回的内容。阅读其文档。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...