单触摸绑定需要实现整个对象层次结构

时间:2013-05-25 21:36:10

标签: binding xamarin.ios

考虑从PanoramaGL获取的以下架构:

@protocol PLIView <NSObject>
@end

@interface PLView : PLViewBase 
@end

@interface PLViewBase : UIView <PLIView, UIAccelerometerDelegate, PLTransitionDelegate> 
@end

我目前的monotouch绑定看起来像这样:

[Model]
[BaseType (typeof (NSObject))]
public partial interface PLIView {
}

[BaseType (typeof (UIView))]
public partial interface PLViewBase : PLIView/*, UIAccelerometerDelegate, PLTransitionDelegate*/ {
}

[BaseType (typeof (PLViewBase))]
public partial interface PLView {
}

请注意,我的 PLViewBase 类需要实现两个委托实现才能遵循原始代码。但是,我不需要访问这些代理提供的功能。

像我一样评论它们是否正确?如果没有,我如何使用2种基本类型进行正确的绑定?

1 个答案:

答案 0 :(得分:2)

C#类可以方便地映射到底层的Objective-C类,因为它将提供相同的习语,但技术上,这是没有必要的。

只要可以在“Foo”类中调用这些方法,就可以列出您感兴趣的所有方法。

因此,对于奇怪的类层次结构,您可以在C#中以最有意义的方式展平,并在您需要的位置定义所需的方法。