2016-01-03 2 views
2

Делаю твиттер, как приложение с синтаксическим анализом с использованием быстрого 2 в Xcode 7.2Как я могу исправить эту ошибку с Parse

Но я получаю эту ошибку

Невозможно преобразовать значение типа ' (PFUser !, NSError!) -> Void 'до ожидаемого типа аргумента' PFUserResultBlock? '

, когда я использую команду

PFUser.logInWithUsernameInBackground 

.

Мой точный код выглядит следующим образом: «?»

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

        print("Login sucessful!") 

      } 
      else { 

       print("Login failed") 


       } 
      } 
     })) 

    } 

И когда я пытаюсь забирая восклицательных знаков и/или заменяя их знаками вопроса я просто эту ошибку

должен сопровождаться вызовом, поиска членов, или подстрочный

Я новичок в быстрой и Xcode, поэтому, пожалуйста, не относиться ко мне, как идиот, я просто новичок быстры, вот и все.

ответ

1

Ваше закрытие должно быть: (PFUser?, NSError?) -> Void не (PFUser!, NSError!) -> Void. Замените! с ? в типах аргументов в замыкании.

+0

Благодарим за ответ, это сработало! – DALabs

0

По Swift 3.0, попробуйте заменить:

(user:PFUser!, error:NSError!)->Void in

с

(user:PFUser?, error:Error?)->Void in

Во-первых, если он работает на всех, я бы не рекомендовал использовать !, потому что вы» ll crash, если вы обычно получаете доступ к user или error, и они nil (один из них всегда есть!).

Во-вторых, в то время как Разбор написано в основном в obj-c, который использует NSError, NSError, как представляется, ввозимые в качестве Error от Swift 3!

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