如何在Xamarin iOS中符合协议

问题描述

强文本我正在Xamarin中实现iZettle支付SDK。我创建了绑定库,并将所有头文件转换为ApiDefintions。 我一直坚持在Xamarin中遵守iZettleSDKAuthorizationProvider协议。

这是我的APIDeFinition.cs文件代码

[BaseType(typeof(NSObject))]
[Model,Protocol]
interface iZettleSDKAuthorizationProvider
{
    // @required -(void)authorizeAccountWithCompletion:(void (^ _Nonnull)(iZettleSDKOAuthToken * _Nullable,NSError * _Nullable))completion;
    [Abstract]
    [Export("authorizeAccountWithCompletion:")]
    void AuthorizeAccountWithCompletion(Action<iZettleSDKOAuthToken,NSError> completion);

    // @required -(void)verifyAccountWithUuid:(NSUUID * _Nonnull)uuid completion:(void (^ _Nonnull)(iZettleSDKOAuthToken * _Nullable,NSError * _Nullable))completion;
    [Abstract]
    [Export("verifyAccountWithUuid:completion:")]
    void VerifyAccountWithUuid(NSUuid uuid,Action<iZettleSDKOAuthToken,NSError> completion);
}

// @interface iZettleSDKAuthorization : NSObject <iZettleSDKAuthorizationProvider>
[BaseType(typeof(NSObject),Name = "_TtC10iZettleSDK23iZettleSDKAuthorization")]
[disableDefaultCtor]
interface iZettleSDKAuthorization : IiZettleSDKAuthorizationProvider
{
    // -(instancetype _Nullable)initWithClientID:(Nsstring * _Nonnull)clientID callbackURL:(NSURL * _Nonnull)callbackURL error:(NSError * _Nullable * _Nullable)error enforcedUserAccount:(Nsstring * _Nullable (^ _Nonnull)(void))enforcedUserAccount __attribute__((objc_designated_initializer));
    [Export("initWithClientID:callbackURL:error:enforcedUserAccount:")]
    [DesignatedInitializer]
    IntPtr Constructor(string clientID,NSUrl callbackURL,[NullAllowed] out NSError error,Func<Nsstring> enforcedUserAccount);
}

简而言之,我想要Xamarin ios等效于以下代码

 id<iZettleSDKAuthorizationProvider> authorizationProvider = [[iZettleSDKAuthorization alloc]
                           initWithClientID:clientId
                           callbackURL:[NSURL URLWithString:callbackURL]
                           error:&error
                           enforcedUserAccount:^Nsstring * _Nullable{
    return [AccountManager shared].enforcedUserAccount;
}];

shown here。这样任何人都可以帮助我,那就太好了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...