0

我正在尝试在我的应用程序中使用 iAds,但我想支持 4.0 以上的所有版本。但是设置当前大小标识符的代码在 4.2 sdk 中发生了变化,它曾经是:

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;

但在 4.2 中,代码是:

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;

因此,当我在 4.2 sdk 中使用旧代码时,它会崩溃,并且如果我为 4.2 使用正确的代码,则任何运行之前版本到 4.2 的设备都会崩溃。有谁知道我如何同时支持两者,或者我必须使用 4.2 作为部署目标吗?

4

2 回答 2

2

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

于 2010-12-22T12:35:37.657 回答
2

有一种解决方法可以同时支持 4.2 和更早的版本。

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

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

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

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

[yourAdBannerView setCurrentContentSizeIdentifier:sizeIdentifier];
于 2011-03-24T03:25:32.993 回答