0

PanoramaGLから取得した次のアーキテクチャを検討してください。

@protocol PLIView <NSObject>
@end

@interface PLView : PLViewBase 
@end

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

私の現在のモノタッチバインディングは次のようになります。

[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 つのデリゲート実装を実装する必要があることに注意してください。ただし、これらのデリゲートによって提供される関数にアクセスする必要はありません。

私のようにコメントアウトするのは正しいですか?そうでない場合、どうすれば 2 つの基本型で正しいバインディングを作成できますか?

4

1 に答える 1

2

同じイディオムを提供するため、C# クラスが基礎となる Objective-C クラスにマップすると便利ですが、技術的には必要ありません。

クラス「Foo」でメソッドを呼び出すことができる限り、関心のあるすべてのメソッドをそこにリストできます。

そのため、奇妙なクラス階層については、C# で最も理にかなった方法でフラット化し、必要なメソッドを必要な場所に定義することができます。

于 2013-05-26T18:16:46.237 に答える