Swift 二进制运算符'==';无法应用于类型为的操作数
二进制运算符“==”不能应用于“Void”(aka“()”)和“String”类型的操作数 我第一次尝试斯威夫特 此代码中出现错误:Swift 二进制运算符'==';无法应用于类型为的操作数,swift,Swift,二进制运算符“==”不能应用于“Void”(aka“()”)和“String”类型的操作数 我第一次尝试斯威夫特 此代码中出现错误: let username = usernameTextfeild.text; let password = passwordTextfeild.text; let usernameStored = UserDefaults.standard.set(username, forKey: "userName"); let passwor
let username = usernameTextfeild.text;
let password = passwordTextfeild.text;
let usernameStored = UserDefaults.standard.set(username, forKey: "userName");
let passwordStored = UserDefaults.standard.set(password, forKey: "password");
if(usernameStored == username)
这里的错误在==运算符中。我尝试了stack中的一些答案,但不知道该使用什么。您试图将存储用户名的结果(即
Void
)与用户名值(即字符串)进行比较。不能将Void
与String
进行比较
您必须首先从UserDefaults
获取值,如下所示:
let storedValue = UserDefaults.standard.string(forKey: "userName")
usernameStored不是一个字符串UserDefaults.standard.set
,它的重载方法也返回void。所以我必须用字符串编写它,只有它能工作?UserDefaults.standard.set(username,forKey:“username”)
不返回任何内容(因此是Void),所以您只是存储Void。thx you@kbunarjo.OP正在比较Void
和String
(他没有比较usernameStored
和passwordStored
,而是比较usernameStored
和username
)