Obj-c绑定:在接口列表中键入MonoTouch.UIKit.UIGestureRecognizerDelegate不是接口

时间:2014-07-10 00:50:28

标签: binding xamarin.ios xamarin

我正在创建https://github.com/romaonthego/RESideMenu的第一个绑定,一切顺利,直到我编译了我的绑定项目。我得到的一个错误是接口中的 UIGestureRecognizerDelegate不是接口。如果我使用IUIGestureRecognizerDelegate,我可以获得编译绑定,但从演练的外观来看,这不是正确的方法。我遇到了另一个关于同一问题的问题,除了他们使用自定义类型,而这是一个框架中的类型,所以我很困惑为什么它不编译。这里的正确方法是什么?

该类的Objective-C代码是:

@interface RESideMenu : UIViewController <UIGestureRecognizerDelegate>

在我的ApiDefinition.cs中:

[BaseType (typeof (UIViewController))]
public partial interface RESideMenu : UIGestureRecognizerDelegate 

1 个答案:

答案 0 :(得分:1)

由于这只是说明您的类采用了协议,因此可以删除UIGestureRecogznierDelegate属性。如果你需要使用“this”作为需要UIGestureRecognizerDelegate的参数,你可以使用属性的“弱”版本。

例如:

 var d = new UIGestureRecognizerDelegate ();
 d.WeakDelegate = new RESideMenu ();

注意在那里使用“WeakDelegate”而不是“Delegate”。