C#绑定库方法不';不接受实现参数

C#绑定库方法不';不接受实现参数,c#,xamarin,xamarin.ios,snapkit,xamarin.ios-binding,C#,Xamarin,Xamarin.ios,Snapkit,Xamarin.ios Binding,为了在Xamarin.iOS中实现新的SnapChat创作工具包,我使用Objective Sharpie绑定了SDK框架。在遵循其他SDK wan的官方文档(仅包含swift和obj-c的实施步骤)时没有问题-我成功地实施了登录工具包-我在尝试将内容发送到SnapChat时遇到了代码错误 特别是,在中,要将内容发送到api,使用以下代码: // swift let snapImage = /* Set your image here */ let photo = SCSDKSnapPhoto

为了在Xamarin.iOS中实现新的SnapChat创作工具包,我使用Objective Sharpie绑定了SDK框架。在遵循其他SDK wan的官方文档(仅包含swift和obj-c的实施步骤)时没有问题-我成功地实施了登录工具包-我在尝试将内容发送到SnapChat时遇到了代码错误

特别是,在中,要将内容发送到api,使用以下代码:

// swift

let snapImage = /* Set your image here */
let photo = SCSDKSnapPhoto(image: snapImage)

let snap = SCSDKSnapPhotoContent(snapPhoto: photo)

let api = SCSDKSnapAPI(content: snap)
api.startSnapping({ (error: Error?) in
/* Error handling */
})
根据文件,

SCSDKPhotoSnapContent是SCSDKSnapContent协议的一个实现。它提供了一种为照片快照建模的方法,以便与Snapchat共享

以下是我的C#实现:

var snapImage = GetCurrentScreenImage();
SCSDKSnapPhoto photo = new SCSDKSnapPhoto(snapImage);
SCSDKPhotoSnapContent snapPhoto = new SCSDKPhotoSnapContent(photo)

SCSDKSnapAPI api = new SCSDKSnapAPI(snapPhoto);
api.StartSnappingWithCompletionHandler((NSError error) =>
{
    // Error handling
});
问题是SCSDKSnapAPI构造函数只接受SCSDKSnapContent,这是一个抽象类,而不是它的实现,调用它时出现错误:

CS1503参数1:无法从“SCSDKCreativeKit_Bindings.SCSDKPhotoSnapContent”转换为“SCSDKCreativeKit_Bindings.SCSDKSnapContent”

编辑:

ApiDefinition.cs

[Export("initWithContent:")]
IntPtr Constructor(SCSDKSnapContent content);
我尝试添加另一个构造函数,如下所示:

[Export("initWithContent:SCSDKPhotoSnapContent")]
IntPtr Constructor(SCSDKPhtotoSnapContent content);
[Export("initWithContent:")]
IntPtr Constructor(SCSDKPhotoSnapContent content);
代码现在已生成,但我在回调时从SnapChat接收到以下错误代码:

SnapEncryptionMetadataUnexpectedStatusCode


我找不到在Xamarin.iOS中正确实现SCSDKSnapContent的方法。我确实找到了一个解决办法,类似的工作。如果将绑定库中SCSDKSnapAPI的构造函数从SCSDKSnapContent更改为其实现之一(在我的示例中为SCSDKPhotoSnapContent),如下所示:

[Export("initWithContent:SCSDKPhotoSnapContent")]
IntPtr Constructor(SCSDKPhtotoSnapContent content);
[Export("initWithContent:")]
IntPtr Constructor(SCSDKPhotoSnapContent content);
然后可以在Xamarin中正确调用SCSDKSnapAPI

var snapImage = GetCurrentScreenImage();
SCSDKSnapPhoto photo = new SCSDKSnapPhoto(snapImage);
SCSDKPhotoSnapContent snapPhoto = new SCSDKPhotoSnapContent(photo)

SCSDKSnapAPI api = new SCSDKSnapAPI(snapPhoto);
api.StartSnappingWithCompletionHandler((NSError error) =>
{
    // Error handling
});

您能在ApiDefinition.cs中提供代码吗?添加了构造函数代码。如果需要更多信息,请告诉我。