加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – MonoTouch NSClassFromString

发布时间:2020-12-15 17:26:43 所属栏目:百科 来源:网络整理
导读:我正在尝试使用MonoTouch中的以下Objective-C代码: if(NSClassFromString(@“ADBannerView”)) C#中的等价物是什么? 基本上我想要使用iAd,但我需要检查ADBannerView和ADInterstitialAd是否存在,因为它们并非在所有版本的操作系统上都可用. (而且我宁愿做功
我正在尝试使用MonoTouch中的以下Objective-C代码:

if(NSClassFromString(@“ADBannerView”))

C#中的等价物是什么?

基本上我想要使用iAd,但我需要检查ADBannerView和ADInterstitialAd是否存在,因为它们并非在所有版本的操作系统上都可用. (而且我宁愿做功能检查而不是iOS版本检查)

我认为这在其他情况下也会有所帮助.

解决方法

最近的MonoTouch将始终提供ADBannerView,因此您无法使用C#等效的Type.GetType来查询可用性.

通常,版本检查是检查功能的最佳方法.例如.

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

对于任何4.0版本的iOS(4.0,当ADBannerView添加到iOS时)将返回true.

一种可能的替代方法(可能在每种情况下都不起作用)是创建一个实例并检查它的句柄.由于ObjC是基于消息的发送,init将返回null(.NET构造函数无法做到的事情).例如.

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

请注意,您可能最好使用处理视图或将其集成到ADBannerView的正常创建中.

更新:当然,对NSClassFromString的p / invoke与ObjectiveC代码完全相同:-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读