繁体   English   中英

'AppDelegate'不符合协议'GIDSignInDelegate'

[英]'AppDelegate' does not conform to protocol 'GIDSignInDelegate'

我正在尝试在swift-3中实现Google Signin,但遇到一个非常奇怪的错误,我正在点击链接https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift 但是,每次执行一次又一次时,我都会看到此错误。 我在桥接头中添加了以下内容。

#import <Google/SignIn.h>

我已经安装了Pod GoogleSignin Pod'Google pod 'Google/SignIn'

这是我的AppDelegate文件代码

    class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {   //<--Here it gives the error
        //Method implemented but giving the error
        func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
        //TODO
        }
    }

'AppDelegate'不符合协议'GIDSignInDelegate'

我试过重新安装吊舱

我曾尝试清洁和其他东西,但没有发现帮助。

我刚刚花了3个小时。 您需要实现的正确签名是:

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)

但是- 检查您是否没有在应用程序 (或其他类GIDSignInGIDGoogleUser )中覆盖Error的定义 我的应用程序中有一个自定义的Error类,它已覆盖默认的Error类。 重命名Error类后,问题消失了。

斯威夫特的编译器是不是非常有帮助这里,因为它显示的类型Error在错误信息这两种情况下,而不是指示他们都表示不同的Error类型。

本课的目的是不使用Foundation中已经为我的班级使用的名称。

您需要在appdelegate中添加以下两种方法

func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {

}

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {

}

您必须实现GIDSignInDelegate所有必需方法才能消除此错误。 因此,请检查GIDSignInDelegate协议中的方法列表,并在AppDelegate类中实现。

并在didFinsishLaunchingOption方法中将委托设置为:

GIDSignIn.sharedInstance().delegate = self

好吧,这是一个非常愚蠢的错误,我的代码中有一个名为Error的自定义类,由于GidSignInDelegate方法无法识别要引用的错误类,因此引起了问题。 如果您犯了同样的愚蠢错误,请寻找答案的任何人进行交叉检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM