1

ASIHTTPRequest Objective-C ライブラリを monotouch にラップしようとしていますが、. Objective-C ヘッダー ファイルには、

@property (割り当て) SEL requestDidFinishSelector;

そして、モノタッチバインディングジェネレーターを使用すると、生成されます

[エクスポート ("requestDidStartSelector")]

セレクタ RequestDidStartSelector { get; 設定; }

これは正常にコンパイルされますが、呼び出されません。できるようになりたい

networkQueue.RequestDidFinish += HandleRequestFinish;

私のC#コードから。

誰かが既に ASIHTTPRequest モノタッチ バインディングを持っているか、またはコールバック イベントをフックする方法を教えてくれますか?

ありがとう。

4

1 に答える 1

1

セレクターは、使用できる「セレクター」へのハンドルのみを返します。

あなたがする必要があるのは、多かれ少なかれ次のようにイベントハンドラーを書くことです:

class MyCallbacker {
    public MyCallbacker (Action t) { this.t = t; }

    [Preserve (Conditional=true)]
    [Export ("MyCallBack")]
    void Callback () {
         t ();
    }
}

event RequestDidFinish {
    add {
         requestDidFinishSelector = new Selector ("MyCallback");
         new MyCallbacker (() => value);
    }
}
于 2013-04-04T13:16:31.043 に答える