gpt4 book ai didi

c# - MonoTouch NSClassFromString

转载 作者:可可西里 更新时间:2023-11-01 05:57:19 25 4
gpt4 key购买 nike

我正在尝试在 MonoTouch 中使用诸如以下 Objective-C 的代码:

if (NSClassFromString(@"ADBannerView"))

C# 中的等价物是什么?

基本上我想使用 iAd,但我需要检查 ADBannerViewADInterstitialAd 是否存在,因为它们并非在所有版本的操作系统上都可用. (与 iOS 版本检查相比,我更愿意进行功能检查)

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

最佳答案

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

通常情况下,版本检查是检查功能的最佳方式。例如

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

将为任何 4.0+ 版本的 iOS 返回 true(4.0 是 ADBannerView 被添加到 iOS 时)。

一种可能的替代方法(可能并非在所有情况下都有效)是创建一个实例并检查它的句柄。由于 ObjC 是基于消息的,因此发送 init 将返回 null(这是 .NET 构造函数无法做到的)。例如。

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

请注意,您最好将上面的内容用 using 来处理 View 或将其集成到 ADBannerView 的正常创建中。

更新:当然是对 NSClassFromString 的 p/调用将与 ObjectiveC 代码完全一样:-)

关于c# - MonoTouch NSClassFromString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com