2017-01-04 10 views
-2

これは私がこの行のエラーの上になります私の迅速なコード です:guard (newUser["status"] as! Int != 0)"スレッド1:EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0)"?

@IBAction func signInButton(_ sender: UIButton) { 
    if validator(){ 
     DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async(execute: { 

      let datas:[String:String] = ["email":self.emailField.text!,"name": self.nameField.text!,"password" : self.passwordField.text!] 
      DispatchQueue.main.async { 
       SwiftSpinner.show("Signin' in...") 
      } 
      let newUser:NSDictionary = self.marketcloud!.createUser(datas) 
      print(newUser) 
      DispatchQueue.main.async { 
       SwiftSpinner.hide() 
       guard (newUser["status"] as! Int != 0) else { 
        let alertController = UIAlertController(title: "Error", message: "Email already in use. Try with a different one!", preferredStyle: .alert) 
        alertController.addAction(UIAlertAction(title: "Close", 
         style: UIAlertActionStyle.destructive, 
         handler: nil)) 
        self.present(alertController, animated: true, completion: nil) 
        return 
       } 
       let alertController = UIAlertController(title: "Ok!", message: "User created successfully!", preferredStyle: .alert) 
       alertController.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.default, handler: {(action:UIAlertAction) in 
        UserData.setLastRegisteredUser(self.emailField.text!, password: self.passwordField.text!); 
        print("Setted UserData \n \(UserData.getLastRegistedUserEmail(),UserData.getLastRegisteredUserPassword())") 
        //returns to the login view 
        let next = self.storyboard!.instantiateViewController(withIdentifier: "viewController") as! ViewController 
        next.downloadProducts = false 
        next.load = true       
        self.navigationController?.pushViewController(next, animated: true) 
       })); 
       self.present(alertController, animated: true, completion: nil) 
      } 
     }) 
    } 
} 
+1

なぜこれをJavaScriptとしてタグ付けしたのかわかりません。代わりにSwiftタグを使用するように質問を編集しました。 –

答えて

1

はどのようにguard作品を理解するようにしてください。

条件はletまたはブール式

guard let status = newUser["status"] as? Int, status != 0 else { ... 

かつ迅速で無括弧との結合オプションでなければなりません。

関連する問題