有条件进口框架(conditionally import framework)

2019-10-23 17:03发布

好,开始与我敢肯定,这是一个简单的问题。

我开发与iAd的框架,它只能运行于iOS 4.0或更高版本的iPhone应用程序。

不过,我想选择一个iPhone OS 3.0的部署目标,这一切都导致崩溃。

  • 如何有条件地包括iAd的框架? ......我的意思是,这将是这样的:...如果([的UIDevice currentDevice] systemVersion]> = 4.0])#进口

显然,这是行不通的,因为我不知道正确的语法。 也:

  • 如何有条件地声明AdView *变量?
  • 如何有条件地处理这个问题的AdView *我在执行文件变量。

如果你们能帮助我,我会很好的印象。

谢谢

Answer 1:

你不需要改变你包括你需要弱链接的iAd系统(或任何其他新的框架):

在你的目标,在链接的框架找到的iAd和“必需”,以“弱”改变“角色”。

有条件地处理变量,使用NSClassFromString功能,如下所示:

Class AdClass = NSClassFromString(@"ADBannerView");
if(AdClass) {//if the class exists
    ADBannerView* myAd = [[AdClass alloc] initWithFrame:CGRectZero];
    // do something with the ad
}

如果操作系统是iOS的比旧的4.0, AdClass将是nil和的代码将不会执行。 请注意,使用ADBannerView*作为变量的类型应该不会造成任何问题,因为它只是一个提示的编译器和相同id编译后。



文章来源: conditionally import framework