2011-01-08 5 views
4

モノトゥッチでコンパイルしたC#ライブラリと目的のCフロントエンドを1つのアプリケーションでリンクすることは可能ですか?モノトゥッチとネイティブiOSコード

+0

モノトゥッチについてはわかりませんが、モノトックですでにコンパイルしていれば、iOSでコードを実行できます。 APIを使ってC#ライブラリをどのように呼び出すことができるのか分かりませんが、リンクが可能であると思います。 – vodkhang

答えて

3

MonoTouchツールから助けを得ることはできませんが、C#コードを実行するためにMonoランタイムが必要であるという事実から脱却することはできません。

Objective-CアプリにMonoランタイムを提供するには、ランタイムをアプリに組み込む必要があります。 MonoTouchサイトには、これを行う方法に関するいくつかの文書があります。hereにMonoを埋め込むことについての技術的な詳細を見つけることができます。here

MonoTouchは、C#コードをコンパイルするときにObjective-Cがそのコードを呼び出すために使用する.mと.sファイルを生成します。これらのファイルは、消費するObjective-Cプロジェクトに含める必要がありますが、MonoTouchは使用後にそのファイルをクリーンアップします。 MonoTouchコンパイラのmtouchを維持するために、.mと.sファイルを削除するのではなく、コンパイラを呼び出すときに--keeptempオプションを使用します。 sample Makefile hereは、mtouchをコマンドラインから正しく呼び出す方法を理解するのに役立ちます。

最後に、これを行うにはフルバージョンのMonoTouchが必要です。試用版は.sファイルを生成しません。

+0

ありがとうございます。試用版にはこれをテストするのに必要なサポートがないことは残念です。しかし、おそらくおそらくポートよりも安いでしょう。 –

+0

フォローアップとして、試用版ではライブラリをコンパイルし、ダミー/概念証明アプリを実行して動作するかどうかを確認できますか? –

+0

概念証明と何が違うのか、最初に説明した内容と異なるのか、私はそれについて話すことはできません。あなたがObjCからMTコードを呼び出すことを頼んでいるので、ObjCのソースがあると思います。 ObjCコードのバインディングを作成し、MonoTouchからそのコードを呼び出すことができます。 ObjCからMTを呼び出そうとするのは、可能な限り電流が流れているが、非常に疲れて困難です。私はあなたのObjCコードをバインドし、あなたのMTアプリから呼び出すことをお勧めしたいと思います。ここには、http://monotouch.net/Documentation/Binding_New_Objective-C_Typesのバインドの詳細があります –

関連する問題