![](/img/trans.png)
[英]AppDelegate does not conform to protocol 'GIDSignInDelegate' in Swift 3
[英]'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!)
但是- 检查您是否没有在应用程序 (或其他类GIDSignIn
, GIDGoogleUser
)中覆盖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.