我正在尝试在我的应用中使用iAd,但我想支持4.0以上的所有版本。但是,用于设置当前大小标识符的代码在4.2 sdk中已更改,它曾经是:
ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;
但在4.2中代码是:
ad.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
因此,如果我使用4.2 sdk中的旧代码,它会崩溃,如果我使用4.2的正确代码运行以前版本的任何设备到4.2崩溃。有谁知道我可以如何支持两者,还是我必须使用4.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];