使用IBMCloudAppID授权委托时,委托不符合协议

时间:2019-05-05 22:43:21

标签: ios swift

我正在尝试为我的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?)
}

由于我正在实现必要的协议存根,因此预期结果是应该可以正常工作。

1 个答案:

答案 0 :(得分:0)

根据IBM文档,您的SigninDelegate应该看起来像这样

import IBMCloudAppID

class delegate : AuthorizationDelegate {
    public func onAuthorizationSuccess(accessToken: AccessToken, identityToken: IdentityToken, response:Response?) {
        //User authenticated
    }

    public func onAuthorizationCanceled() {
        //Authentication cancelled by the user
    }

    public func onAuthorizationFailure(error: AuthorizationError) {
        //Exception occurred
    }
}

除非您使用其他版本