3

Cordovaライブラリを利用するxamarinアプリを構築しようとしています。私は必要なライブラリのコンポーネントの独自のバインディングに取り組んできましたが、これまでのところ、うまく機能しています。

今日、私は興味深い問題に遭遇しました。私はここwebView: shouldStartLoadWithRequest:で利用可能なメソッドをオーバーライドしようとしていました。CDVViewContainer

XamarinBindingGuideとXamarinAdvancedBindingガイドを見てきました。これらの両方は、プロトコルがインターフェースに類似しており、高度なバインディングガイドに示されているように注意します

@interface UITextField : UIControl <UITextInput> {

}

に翻訳されます

[BaseType (typeof (UIControl))]
interface UITextField : UITextInput {
}

これに基づいて、私は翻訳しました

@interface CDVViewController : UIViewController <UIWebViewDelegate, CDVScreenOrientationDelegate>{

}

の中へ

[BaseType (typeof (UIViewController))]
interface CDVViewController : UIWebViewDelegate {

}

しかし、バインディングライブラリを作成しようとすると、

Cordova.cs(26,39): error CS0527L Type `MonoTouch.UIKit.UIWebViewDelegate' in interface list is not an interface. 

Appleの仕様を確認しましたが、これは実際にはプロトコルです。誰かが私が間違っていることを理解するのを手伝ってもらえますか?

4

1 に答える 1

5

これはツールの制限です。その構文を使用してプロトコルを採用できるのは、独自の定義を含める場合のみです。外部定義で定義されているプロトコルを採用する場合は機能しません。

于 2013-03-27T07:27:45.130 に答える