Facebook FBSDKLoginButtonDelegate loginButton ошибка синтаксиса

Я использую Xcode8 и Swift 3. Итак, я полностью преобразовал свой проект в последний синтаксис, и теперь я получаю ошибку:

"Ошибка" неоднозначна для поиска типов в этом контексте

в функции:

func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
//do stuff
}

Функция в FBSDK объявлена ​​следующим образом:

- (void)  loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
            error:(NSError *)error;

поэтому я попытался изменить тип ошибки на NSError, но я получаю другую ошибку:

SignInViewController не соответствует протоколу FBSDKLoginButtonDelegate

Я не знаю что делать. Любая помощь приветствуется!

2 ответа

Решение

Я обнаружил, что я импортировал RealmSwift которые имеют свои Error структура. Таким образом, решение заключается в использовании Swift.Error вместо просто Error, Надеюсь, это кому-нибудь поможет.

Синтаксис в методе FBSDKLoginButtonDelegate изменяется, как показано ниже в Swift 3.

func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {


    }

"результат didCompleteWithResult" изменен на "результат didCompleteWith".

Другие вопросы по тегам