6

コマンドを使用してライブラリのsharpie bindAPI インターフェイスを取得していますiOSxamarin

sharpie bind --namespace=XXX --sdk=iphoneos9.2 Headers/*.h

@protocolバインディングに問題がある:

The type or namespace name `IProfileDelegate' could not be found. Are you missing an assembly reference?

生成方法は次のとおりです。

    interface XLibrary : IProfileDelegate
    {
    [Wrap ("WeakProfileDelegate")]
    [NullAllowed]
    MB_ProfileDelegate ProfileDelegate { get; set; }

ProfileDelegate空を作成してからコンパイラを作成するか、何かがメソッドで満たすことを理解していますが、私の問題はIProfileDelegate見つからないことです。

@protocol ProfileDelegate <NSObject>
@required
- (void)GetProfileFinished:(NSString*)_data;
- (void)SetProfileFinished:(NSString*)_data;
@end

ここでのIシンボルの違い (これは @protocols 用に予約されていると思います)。sharpie適切な API 定義を生成するにはどうすればよいですか?

すべてのプレフィックスを削除することができ、I正常にコンパイルされますが、ソース ライブラリを更新する必要があるたびにこれを繰り返さないように修正したいと思います。

ありがとう

4

2 に答える 2

5

すべての obj-c プロトコルがインターフェイスまたは抽象クラスとして機能することを思い出してください

[Protocol, Model]
[BaseType (typeof(NSObject))]
interface myAwesomeDelegate
{
  [Abstract]
  [Export(...)]
  void myRequiredMethod(uint param1)

  [Export(...)]
  void anotherMethod()
}

これが問題の解決に役立つことを願っています

于 2016-04-07T01:23:13.067 に答える