4.2中的iAd更改问题

时间:2010-12-22 12:26:16

标签: ios size iad identifier banner-ads

我正在尝试在我的应用中使用iAd,但我想支持4.0以上的所有版本。但是,用于设置当前大小标识符的代码在4.2 sdk中已更改,它曾经是:

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;

但在4.2中代码是:

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;

因此,如果我使用4.2 sdk中的旧代码,它会崩溃,如果我使用4.2的正确代码运行以前版本的任何设备到4.2崩溃。有谁知道我可以如何支持两者,还是我必须使用4.2作为部署目标?

2 个答案:

答案 0 :(得分:2)

您的代码中还存在其他问题 - 在4.2下使用ADBannerContentSizeIdentifier480x32不会导致崩溃,实际上它甚至不会触发编译器警告。它已被弃用但仍然可用。

答案 1 :(得分:2)

有一种解决方法可以支持4.2版和早期版本。

您可以使用类似于以下代码的内容检查您的ios版本是否存在常量:

NSString *sizeIdentifier = &ADBannerContentSizeIdentifierLandscape != nil ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifier480x32;

然后只需使用该字符串初始化您的iAd视图

[yourAdBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObject:sizeIdentifier]];

[yourAdBannerView setCurrentContentSizeIdentifier:sizeIdentifier];