問題タブ [xamarin.ios-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2932 参照

xamarin.ios - Xamarin ios 委任

Xamarin で委任パターンを使用する正しい方法は何ですか?

API定義(によって生成されたsharpie)では、プロトコルがInterfaceSomeDelegateにマップされています:

次のようにView Controllerを宣言しました:

しかし、このようにプロトコルを実装するためにView Controllerを作成することはできません:(複数の基本クラスを持つことはできません)

delegateこれを追加のクラスに実装できます。

このクラスをデリゲートとして使用しますが、これは私にとってあまり便利な方法ではありません。

最近、「I」を追加することで次のことがわかりました。

これは基本クラスではなくインターフェース(プロトコル)であるとコンパイラーに明示的に言う(と思います)ことにより、「複数の基本クラスエラー」を回避します。

メソッドのパラメーターとしてデリゲートを渡す必要があり、コンパイルエラーが発生しました-SomeDelegate型をに変換できませんSomeDelegate

(whatever)delegatesのようないくつかのクラスに実装する方法はありますか?UIViewController

0 投票する
0 に答える
219 参照

xamarin.ios - DLL ライブラリを使用した Xamarin.ios

ソリューションに追加すると正常に動作xamarinするバインディング プロジェクト (ネイティブ スタティック ライブラリへの一種のブリッジを表すiOS) があります。

私がやろうとしているのは、プロジェクトをバインドする代わりに /bin/libary.dll を使用することです。

新しいxamarin.ios単純なビュー プロジェクトを作成し、library.dll への参照を追加しました。

プロジェクトはそのライブラリの API を使用して正常にコンパイルされますが、実行すると致命的なエラーが発生します:

ここに画像の説明を入力 そのため、アプリケーションへのエントリポイントすらありません

おそらく回答を投稿して申し訳ありませんが、迅速に機能させる必要があります。

0 投票する
2 に答える
1668 参照

c++ - xamarin ios バインディングでのネイティブ リンク エラー

Sharpie はこの SDK のコンパイル可能なコードを生成できなかったため、P/Invoke を使用して iOS SDK にバインドするラッパーを作成しています。

ラッパー プロジェクトを参照して iOS アプリをコンパイルすると、次のような多くのリンクの問題が発生します。

MTOUCH: エラー MT5210: ネイティブ リンクに失敗しました。未定義のシンボル: std::locale::classic()。必要なすべてのフレームワークが参照され、ネイティブ ライブラリが適切にリンクされていることを確認してください。 MTOUCH: エラー MT5210: ネイティブ リンクに失敗しました。未定義のシンボル: std::__throw_bad_cast()。必要なすべてのフレームワークが参照され、ネイティブ ライブラリが適切にリンクされていることを確認してください。必要なすべてのフレームワークが参照され、ネイティブ ライブラリが適切にリンクされていることを確認してください (この完全なログ ファイルで完全なログを見つけてください)。

iOS プロジェクトから渡される追加の mono touch 引数を以下に示します。

-cxx -v -gcc_flags "-L${ProjectDir} -lstdc++ -lresolv -liconv -lxml2 -lz -ObjC -force_load ${ProjectDir}/Libs/libcrypto.a" -cxx -v -gcc_flags "-L${ProjectDir } -lstdc++ -lresolv -liconv -lxml2 -lz -ObjC -force_load ${ProjectDir}/Libs/libssl.a" -cxx -v -gcc_flags "-lstdc++ -lresolv -liconv -lxml2 -lz -ObjC -L${ProjectDir } -framework Security -framework CoreVideo -framework CoreMedia -framework AVFoundation -framework CFNetwork -framework Accelerate -framework AudioToolbox -framework CoreAudio -framework Foundation -framework CoreGraphics -framework UIKit -force_load ${ProjectDir}/Libs/libsipwrapper.a -dead_strip -all_load "

SDK は、libcrypto.a、libssl.a、libsipwrapper.a の 3 つのライブラリで構成されています。

インターネット上の多くの記事/投稿に従って、-lstdc++、lz、および ObjC などの標準ライブラリを追加することをお勧めしますが、これは私の場合は機能しないようです。

また、3 つのライブラリとラッパー コードを含むバインド プロジェクトを作成しようとしましたが、linkwith ファイルに追加されたコンテンツは次のようになります。

[アセンブリ: LinkWith ("libsipwrapper.a", LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Arm64, フレームワーク = "CoreVideo CoreMedia AVFoundation CFNetwork Accelerate AudioToolbox CoreAudio Foundation CoreGraphics UIKit", ForceLoad = false, SmartLink = true, IsCxx = true, LinkerFlags = "-lstdc++ -lresolv -liconv -lxml2 -lz -ObjC")]

問題は解決されず、記載されているリンク エラーが引き続き発生します。

0 投票する
1 に答える
1388 参照

xamarin - Xamarin フォームで動的に作成された 10 個のラベルを使用してモデル オブジェクトをバインドする

私は Xamarin フォームに取り組んでおり、モデル オブジェクトを for ループを使用して動的に作成された 10 個のラベルにバインドする必要があるという問題に直面しました。次のように setBinding を使用して単一のラベルをバインドできます

ただし、動的に作成されたラベルをバインドする方法。forループのようなものを使ってラベルを作成しています

myModelObj内にある異なるラベルに異なる値を割り当てる方法

0 投票する
1 に答える
131 参照

c# - ネイティブ参照を使用して Xamarin Studio 6 で LinkTarget を設定する方法

Xamarin Studio 6 で xamarin.ios バインディングを作成しています。静的ライブラリをネイティブ参照として追加しました。しかし、プロパティ ウィンドウから LinkTarget (LinkTarget = LinkTarget.ArmV7 | LinkTarget.Simulator) を設定するにはどうすればよいですか?