Objective-Sharpie ApiDefinition是否包含重载方法?

时间:2018-08-28 18:33:16

标签: xamarin xamarin.forms xamarin.ios objective-sharpie xamarin.ios-binding

经过一番挠头,我终于使目标清晰地绑定了一个.framework文件,但是它生成的ApiDefinition.cs文件包含一些不规则之处。

    // @optional -(void)flyerView:(WFKFlyerView * _Nonnull)flyerView gotSingleTap:(id<WFKFlyerViewTapAnnotation> _Nullable)annotation atPoint:(CGPoint)point;
    [Export("flyerView:gotSingleTap:atPoint:")]
    void FlyerView(WFKFlyerView flyerView, [NullAllowed] WFKFlyerViewTapAnnotation annotation, CGPoint point);

    // @optional -(void)flyerView:(WFKFlyerView * _Nonnull)flyerView gotDoubleTap:(id<WFKFlyerViewTapAnnotation> _Nullable)annotation atPoint:(CGPoint)point;
    [Export("flyerView:gotDoubleTap:atPoint:")]
    void FlyerView(WFKFlyerView flyerView, [NullAllowed] WFKFlyerViewTapAnnotation annotation, CGPoint point);

    // @optional -(void)flyerView:(WFKFlyerView * _Nonnull)flyerView gotLongPress:(id<WFKFlyerViewTapAnnotation> _Nullable)annotation atPoint:(CGPoint)point;
    [Export("flyerView:gotLongPress:atPoint:")]
    void FlyerView(WFKFlyerView flyerView, [NullAllowed] WFKFlyerViewTapAnnotation annotation, CGPoint point);

因此,这实际上不会编译,因为Visual Studio恰当地指出,尽管具有不同的[Export]属性,但这些方法具有完全相同的定义。我尝试对其进行更改,以使只有一个具有多个[Export]属性的方法,但这也是不允许的。不知道该怎么办。

顶部还有一个using语句,我想指出的是我在Visual Studio for Mac的Xamarin项目中已设置的Native Reference,但它不起作用( type or namespace could not be found are you missing an assembly reference, etc.

任何帮助,不胜感激!

1 个答案:

答案 0 :(得分:2)

  1. 通过注释生成的代码中重复的实现,即具有相同参数的实现,来修正警告。
  2. 删除了空的生成接口。
  3. 在ApiDefinition.cs中注释了“使用xxx(您的SDK名称)” — 100%不确定为什么这样做是必要的!