首先,我确信这是一个简单的问题。
我正在使用iAd Framework开发iPhone应用程序,该应用程序仅适用于iOS 4.0或更高版本。
尽管如此,我还是想选择一个iPhone OS 3.0部署目标,这会导致一切崩溃。
显然这不起作用,因为我不知道正确的语法。也:
如果你们能帮助我,我会留下非常深刻的印象。
由于
答案 0 :(得分:2)
您无需更改包含,您需要将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
相同。