Ios 4.2中iAd更改的问题

Ios 4.2中iAd更改的问题,ios,size,iad,identifier,banner-ads,Ios,Size,Iad,Identifier,Banner Ads,我正在尝试在我的应用程序中使用iAds,但我希望支持4.0以上的所有版本。但是,在4.2 sdk中设置当前大小标识符的代码已更改,它以前是: ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32; 但在4.2中,代码是: ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; 因此,如果我在4.2 sdk中使用旧代码

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

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;
但在4.2中,代码是:

ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;

因此,如果我在4.2 sdk中使用旧代码,就会崩溃,如果我在4.2 sdk中使用正确的代码,任何运行4.2之前版本的设备都会崩溃。有人知道我如何支持这两个版本吗?或者我必须使用4.2作为部署目标吗?

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

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

有一种变通方法可以同时支持4.2和早期版本

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

NSString *sizeIdentifier = &ADBannerContentSizeIdentifierLandscape != nil ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifier480x32;
然后使用字符串初始化iAd视图

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

[yourAdBannerView setCurrentContentSizeIdentifier:sizeIdentifier];

有一种变通方法可以同时支持4.2和earliers版本

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

NSString *sizeIdentifier = &ADBannerContentSizeIdentifierLandscape != nil ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifier480x32;
然后使用字符串初始化iAd视图

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

[yourAdBannerView setCurrentContentSizeIdentifier:sizeIdentifier];