2015-10-10 2 views
0

Итак, я пытаюсь обновить свой код до синтаксиса Swift 2.0, но я не могу заставить мой логин Parse работать. Я просмотрел изменения документации и добавил блок результатов для моего входа в систему, но я получаю сообщение об ошибке «» (, ) throws -> Void 'не конвертируется в' PFUserResultBlock? ' "Swift 2.0 Parse Login

Вот строка кода:

PFUser.logInWithUsernameInBackground(usernameTextField.text!, password: passwordTextField.text!, block: { (user,error) -> Void in 
       if user != nil { 

ответ

0

Попробуйте эту версию

PFUser.logInWithUsernameInBackground(usernameTextField.text!, password: passwordTextField.text!) { (user:PFUser?, error:NSError?) -> Void in 
     if user != nil { 
      print("Login Successful") 
     } else { 
      print("Login Failed") 
     } 
    } 
+0

Я получаю ошибку: не может ссылаться на 'logInWithUsernameInBackground' со списком аргументов типа '(String, пароль: String, (PFUser ?, NSError) броски -> Пустота)' –

+0

Я снова попытался это кусок кода здесь, и он хорошо работает с XCode 7.0 и Swift 2. Можете ли вы попробовать очистить код (Продукт -> Очистить из верхнего меню), а также удалить старые производные данные (/ Users/YOURUSERNAME/Library/Developer/Xcode/DerivedData) и повторите попытку после перезапуска XCode? – emreoktem

+0

Да, я сделал это, он все еще дает мне ошибку. У меня есть еще одна ошибка в xcode, которая говорит, что «NSMutableDictionary» не конвертируется в «[NSObject: AnyObject]» в моем делете приложения, поэтому я не уверен, могут быть связаны и вызывают эту проблему. –

0

Этот код может решить вашу проблему.

PFUser.logInWithUsername(inBackground: emailTextField.text!, password: passwordTextField.text!, block: { (user, error) in 
        self.activityIndicator.stopAnimating() 

        UIApplication.shared.endIgnoringInteractionEvents() 

        if error != nil { 

         var displayErrorMessage = "Please try again later" 

         let error = error as NSError? 

         if let errorMessage = error?.userInfo["error"] as? String { 

          displayErrorMessage = errorMessage 

         } 

         self.createAlert(title: "Login Error", message: displayErrorMessage) 

        } else { 

         print("logged inn") 

         self.performSegue(withIdentifier: "showUserTable", sender: self) 

        } 

       }) 
+0

Возможно, вы захотите проверить свой отступ; похоже, что он не копировал правильно. Чтобы убедиться, что вы получаете форматирование кода, выделите код после вставки его и нажмите Ctrl + K (который добавит 4 пробела перед вашим кодом). – Aurora0001

Смежные вопросы