問題タブ [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.
xamarin.ios - Xamarin ios 委任
Xamarin で委任パターンを使用する正しい方法は何ですか?
API定義(によって生成されたsharpie
)では、プロトコルがInterface
SomeDelegateにマップされています:
次のようにView Controllerを宣言しました:
しかし、このようにプロトコルを実装するためにView Controllerを作成することはできません:(複数の基本クラスを持つことはできません)
delegate
これを追加のクラスに実装できます。
このクラスをデリゲートとして使用しますが、これは私にとってあまり便利な方法ではありません。
最近、「I」を追加することで次のことがわかりました。
これは基本クラスではなくインターフェース(プロトコル)であるとコンパイラーに明示的に言う(と思います)ことにより、「複数の基本クラスエラー」を回避します。
メソッドのパラメーターとしてデリゲートを渡す必要があり、コンパイルエラーが発生しました-SomeDelegate
型をに変換できませんSomeDelegate
(whatever)delegates
のようないくつかのクラスに実装する方法はありますか?UIViewController
xamarin.ios - DLL ライブラリを使用した Xamarin.ios
ソリューションに追加すると正常に動作xamarin
するバインディング プロジェクト (ネイティブ スタティック ライブラリへの一種のブリッジを表すiOS
) があります。
私がやろうとしているのは、プロジェクトをバインドする代わりに /bin/libary.dll を使用することです。
新しいxamarin.ios
単純なビュー プロジェクトを作成し、library.dll への参照を追加しました。
プロジェクトはそのライブラリの API を使用して正常にコンパイルされますが、実行すると致命的なエラーが発生します:
そのため、アプリケーションへのエントリポイントすらありません
おそらく回答を投稿して申し訳ありませんが、迅速に機能させる必要があります。
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")]
問題は解決されず、記載されているリンク エラーが引き続き発生します。
xamarin - Xamarin フォームで動的に作成された 10 個のラベルを使用してモデル オブジェクトをバインドする
私は Xamarin フォームに取り組んでおり、モデル オブジェクトを for ループを使用して動的に作成された 10 個のラベルにバインドする必要があるという問題に直面しました。次のように setBinding を使用して単一のラベルをバインドできます
ただし、動的に作成されたラベルをバインドする方法。forループのようなものを使ってラベルを作成しています
myModelObj内にある異なるラベルに異なる値を割り当てる方法
c# - ネイティブ参照を使用して Xamarin Studio 6 で LinkTarget を設定する方法
Xamarin Studio 6 で xamarin.ios バインディングを作成しています。静的ライブラリをネイティブ参照として追加しました。しかし、プロパティ ウィンドウから LinkTarget (LinkTarget = LinkTarget.ArmV7 | LinkTarget.Simulator) を設定するにはどうすればよいですか?