2012-02-04 9 views
1

iCarouselネイティブライブラリ(this exampleで説明されているLinkWithメソッドを使用)からコンパイルされたネイティブクラスを派生しようとしています。 使用する場合は、生成結合、すべてが完璧に動作します:ネイティブクラスのモノタック派生クラス

iCarousel carousel = new iCarousel(new RectangleF(0, 0, 300, 300)); 

しかし、この派生クラスを作成しようとすると:

public class Carousel2 : iCarousel 
{ 

    public Carousel2(RectangleF rect) : base(rect) 
    { 
      Console.WriteLine("do something"); 
    } 

} 

とこのようにそれを使用して:

Carousel2 carousel = new Carousel2(new RectangleF(0, 0, 300, 300)); 

をそれはコンパイルが、それエラーなしで作業を停止します。それは私が行方不明であるか?

UPDATE:私はここにObjective-CのヘッダとApiDefinition.csソースコードを入れている: http://dantes-andreea.blogspot.com/2012/02/icarousel-monotouch-binding-code.html

+1

あなたのバインディングはどこからでも閲覧(閲覧またはダウンロード)できますか?例えばgithub – poupou

+0

私はobjective-cヘッダーとapidefinition.csファイルをここに入れました:http://dantes-andreea.blogspot.com/2012/02/icarousel-monotouch-binding-code.html – Daniel

答えて

2

私はあなたがバインディングを生成するときbtouchする-eを渡す必要があると思う、それ以外の場合はされませんサブクラス可能。

デフォルトでは、btouchはサブクラス化可能な型を生成しません。なぜなら、それらは少し遅いからです。

アップデートは

私が間違っていた、-eスイッチはサブクラス化バインディングを生成するためにbtouchに渡すことはない必要があります。残念ながら、このスイッチは無条件で渡されます。 A bug reportが提出されている。

MonoDevelopがプロジェクトをビルドした後で(btouchコマンドラインのc &pをビルドし、-eスイッチを削除して)、btouchコマンドを手動で実行することで回避できます。次に、後続の手順も手動で実行する必要があります。

+0

Hy。 LinkWithには属性がありますか? – Daniel

+0

実際は逆です。-eは渡されません。残念ながら、これは現在バインディングプロジェクトでは不可能です。 –