2015-12-03 127 views
-1

@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); 
     } 


    } 


} 

我有一个问题如上述。上述问题的解决方案是什么?谢谢

+0

您正在比较数组和字符串。 userEmailStored是一个数组,而userEmail是一个String。你想做什么? – Shripada

+0

您可以验证'userEmailStored'是否具有任何值属性或可评估为实际基础值的字符串表示的内容。 –

回答

0
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

0

你不能比较一个数组与字符串。

尝试:

if userEmailStored.contains(userEmail) && userPasswordStored.contains(userPassword) { 
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn"); 
    NSUserDefaults.standardUserDefaults().synchronize(); 
    self.dismissViewControllerAnimated(true, completion: nil); 
} 
相关问题