【发布时间】:2019-05-06 13:12:30
【问题描述】:
我正在尝试为我的 iOS 应用程序使用 IBM App ID 云登录,当我添加授权委托时,它一直说“类型‘SigninDelegate’不符合协议‘TokenResponseDelegate’”,但协议存根在我的类符合协议吗?
我尝试创建自己的协议,使用相同的函数和参数,但没有成功。
如果我想使用 IBMCloudApp id 登录功能,这就是继承协议和所需使用的存根的样子。
import UIKit
import IBMCloudAppID
import BMSCore
class SigninDelegate: AuthorizationDelegate {
func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, refreshToken: RefreshToken?, response: Response?)
func onAuthorizationFailure(error: AuthorizationError)
func onAuthorizationCanceled(error: AuthorizationError)
}
在 AuthorizationDelegate 里面有这个
public protocol AuthorizationDelegate : TokenResponseDelegate {
func onAuthorizationCanceled()
}
然后在 TokenResponseDelegate 里面有这个
import Foundation
import BMSCore
public protocol TokenResponseDelegate {
func onAuthorizationFailure(error: AuthorizationError)
func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, refreshToken: RefreshToken?, response:Response?)
}
预期的结果是这应该可以正常工作,因为我正在实现必要的协议存根......
【问题讨论】:
-
您的代码是否存在复制粘贴错误,因为您的
SigninDelegate和AuthorizationDelegate具有不同的签名。