4

MonoTouch で次の Objective-C などのコードを使用しようとしています。

if (NSClassFromString(@"ADBannerView"))

C#で同等のものは何ですか?

基本的には iAd を使いたいのですが、OS のすべてのバージョンで使用できるわけではないため、ADBannerViewとの存在を確認する必要があります。ADInterstitialAd(そして、iOS のバージョン チェックよりも機能チェックを行いたい)

これは他の状況でも役立つと思います。

4

2 に答える 2

2

最近のMonoTouchは常に提供するため、C#で可用性を照会ADBannerViewすることはできません。Type.GetType

通常、バージョンチェックは機能をチェックするための最良の方法です。例えば

bool available = UIDevice.CurrentDevice.CheckSystemVersion (4, 0);

iOSの4.0以降のバージョン(iOSに4.0が追加されたとき)に対してtrueを返します。ADBannerView

考えられる代替案(すべての場合に機能するとは限りません)は、インスタンスを作成してそのハンドルを確認することです。ObjCはメッセージベースであるため、送信initはnullを返します(.NETコンストラクターでは実行できないこと)。例えば

bool available = (new ADBannerView ().Handle != IntPtr.Zero);

usingビューを破棄するか、これを通常の作成内に統合するには、おそらく上記をで囲むのが最適であることに注意してくださいADBannerView

更新:もちろん、ap /invoketoNSClassFromStringはObjectiveCコードとまったく同じように動作します:-)

于 2012-06-08T17:52:25.617 に答える
0

この人は質問をして答えました。コンパイラ フラグが必要なようです。

これを確認してください: iAds を使用した MonoTouch アプリがシミュレーターで実行され、デバイスでクラッシュする

それ以外の場合は、アセンブリ内のクラスを確認できます。

最後に、私が行ったのと同じ Google 検索を使用できます: monotouch ADBannerView アセンブリ

これで解決しない場合は、MonoTouch のスタッフの 1 人が通常、monotouch のタグが付いた質問をチェックしてくれます。

于 2012-06-08T14:53:46.343 に答える