iOS 4.2中不推荐使用以下常量
ADBannerContentSizeIdentifier320x50
因此,对于已经发布的应用程序,这将成为未来操作系统版本中的一个问题。
在iOS 4.2中,他们介绍了
ADBannerContentSizeIdentifierPortrait
如果我想同时支持iOS 4.0和iOS 4.2,我应该怎么做。
答案 0 :(得分:3)
您必须检查常量是否可用。这是一个解决方案
Class cls = NSClassFromString(@"ADBannerView");
if (cls) {
if (&ADBannerContentSizeIdentifierPortrait != nil) {
kTabnavADBannerContentSizeIdentifierPortrait =
ADBannerContentSizeIdentifierPortrait;
} else {
kTabnavADBannerContentSizeIdentifierPortrait =
ADBannerContentSizeIdentifier320x50;
}
if (&ADBannerContentSizeIdentifierLandscape != nil) {
kTabnavADBannerContentSizeIdentifierLandscape =
ADBannerContentSizeIdentifierLandscape;
} else {
kTabnavADBannerContentSizeIdentifierLandscape =
ADBannerContentSizeIdentifier480x32;
}
ADBannerView *adView = [[cls alloc] initWithFrame:CGRectZero];
adView.requiredContentSizeIdentifiers = [NSSet setWithObjects:
kTabnavADBannerContentSizeIdentifierPortrait,
kTabnavADBannerContentSizeIdentifierLandscape,
nil];
// Set the current size based on device orientation
adView.currentContentSizeIdentifier = kTabnavADBannerContentSizeIdentifierPortrait;
adView.delegate = self;
adView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleRightMargin;
// Set intital frame to be offscreen
CGRect bannerFrame =adView.frame;
bannerFrame.origin.y = self.view.frame.size.height;
adView.frame = bannerFrame;
self.bannerView = adView;
[self.view addSubview:adView];
[adView release];
}
答案 1 :(得分:1)
在最新的iOS目标上开发,但在项目的构建设置和所有目标中将部署目标设置为4.0。