二元运算符'=='不能应用于'Expression [String]?'类型的操作数和'串?'
问题描述:
@IBAction FUNC loginButtonTapped(发件人:AnyObject){二元运算符'=='不能应用于'Expression [String]?'类型的操作数和'串?'
let userEmail = userEmailTextField.text;
let userPassword = userPasswordTextField.text;
let userEmailStored = NSUserDefaults.standardUserDefaults().stringArrayForKey("userEmail");
let userPasswordStored = NSUserDefaults.standardUserDefaults().stringArrayForKey("userPassword");
if(userEmailStored == userEmail) // Binary operator '==' cannot be applied to operands of type 'Expression[String]?' and 'String?'
{
if(userPasswordStored == userPassword) // Binary operator '==' cannot be applied to operands of type 'Expression[String]?' and 'String?'
{
// Login Successfull
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn");
NSUserDefaults.standardUserDefaults().synchronize();
self.dismissViewControllerAnimated(true, completion: nil);
}
}
}
我有一个问题如上述。上述问题的解决方案是什么?谢谢
答
let userEmailStored = NSUserDefaults.standardUserDefaults().stringArrayForKey("userEmail");
let userPasswordStored = NSUserDefaults.standardUserDefaults().stringArrayForKey("userPassword");
有这两个代码错误,功能,它是没有stringArrayForKey
。字符串键数组试图建立字符串数组, 您无法将字符串数组与字符串进行比较。
NSUserDefaults.standardUserDefaults().stringForKey("userEmail");
NSUserDefaults.standardUserDefaults().stringForKey("userPassword");
+0
将stringArrayForKey替换为stringForKey时,问题得以解决。 感谢bro RYANCOAL9999 – Aab
答
你不能比较一个数组与字符串。
尝试:
if userEmailStored.contains(userEmail) && userPasswordStored.contains(userPassword) {
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn");
NSUserDefaults.standardUserDefaults().synchronize();
self.dismissViewControllerAnimated(true, completion: nil);
}
您正在比较数组和字符串。 userEmailStored是一个数组,而userEmail是一个String。你想做什么? – Shripada
您可以验证'userEmailStored'是否具有任何值属性或可评估为实际基础值的字符串表示的内容。 –