0

現在、MonoTouch プロジェクトに取り組んでおり、カード リーダーで使用する目的の C API を追加する必要がありました。Xamarin が提供するすべてのドキュメントを読んだ後、バインドを機能させるための基本を理解するのに苦労しています。インターフェイスのコーディングをしようとしていますが、C# バージョンのメソッドのコーディング方法に関するさまざまなメッセージが表示されます。次のように、ハンドルなどを使用して Objective C ランタイムを実際に呼び出す方法を見てきました。

    [Export("doSomething")]
    public virtual void DoSomething()
    {
        return Runtime.GetNSObject(
            Messaging.IntPtr_objc_msgSend(this.Handle, selNextObject.Handle));
    }
    // I know this code doesn't match what you would do in a void method
    // but bear with me

しかし、次のような単純なメソッド定義を作成する例も見てきました

    //from obj-c code -(void) doSomething;
    [Export("doSomething")]
    void DoSomething();

メソッドは、Objective C API の 'doSomething' メソッドを自動的に認識し、それらの操作を実行しますか? それとも、C# メソッド操作を自分でコーディングする必要がありますか? (セレクターについては知っていますが、セレクターの機能や適切な使用方法についてはあまり詳しくありません) 可能な限りのヘルプまたは説明をいただければ幸いです。本当にありがとう!

4

1 に答える 1

1

バインディング ジェネレーターを使用すると、すべての作業が自動的に行われます。これは、MonoTouch のほぼすべての API で使用するものです。

しかし、手動でロールアウトしたい場合は、手動で msgSend を呼び出します。

于 2012-06-14T22:02:40.580 に答える