iOS 6和iAds提供了太多的警告

这是我的iAd代码,我收到警告

setRequiredContentSizeIdentifiers - deprecated in iOS 6 ADBannerContentSizeIdentifier320x50 - deprecated in iOS 4.2 ADBannerContentSizeIdentifier480x32 - deprecated in iOS 4.2 setCurrentContentSizeIdentifier - deprecated in iOS 6 ADBannerContentSizeIdentifier480x32 - deprecated in iOS 4.2 

我如何解决这个问题,所以没有任何警告。

 - (int)getBannerHeight:(UIDeviceOrientation)orientation { if (UIInterfaceOrientationIsLandscape(orientation)) { return 32; } else { return 50; } } - (int)getBannerHeight { return [self getBannerHeight:[UIDevice currentDevice].orientation]; } - (void)createAdBannerView { Class classAdBannerView = NSClassFromString(@"ADBannerView"); if (classAdBannerView != nil) { self->adView = [[classAdBannerView alloc] initWithFrame:CGRectZero]; [adView setRequiredContentSizeIdentifiers:[NSSet setWithObjects: ADBannerContentSizeIdentifier320x50, ADBannerContentSizeIdentifier480x32, nil]]; if (UIInterfaceOrientationIsLandscape([UIDevice currentDevice].orientation)) { [adView setCurrentContentSizeIdentifier: ADBannerContentSizeIdentifier480x32]; } else { [adView setCurrentContentSizeIdentifier: ADBannerContentSizeIdentifier320x50]; } [adView setFrame:CGRectOffset([adView frame], 0, -[self getBannerHeight])]; [adView setDelegate:self]; [self.view addSubview:adView]; } } - (void)fixupAdView:(UIInterfaceOrientation)toInterfaceOrientation { if (adView != nil) { if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { [adView setCurrentContentSizeIdentifier: ADBannerContentSizeIdentifier480x32]; } else { [adView setCurrentContentSizeIdentifier: ADBannerContentSizeIdentifier320x50]; } [UIView beginAnimations:@"fixupViews" context:nil]; if (bannerIsVisible) { CGRect adBannerViewFrame = [adView frame]; adBannerViewFrame.origin.x = 0; adBannerViewFrame.origin.y = 0; [adView setFrame:adBannerViewFrame]; CGRect contentViewFrame = _contentView.frame; contentViewFrame.origin.y = [self getBannerHeight:toInterfaceOrientation]; contentViewFrame.size.height = self.view.frame.size.height - [self getBannerHeight:toInterfaceOrientation]; _contentView.frame = contentViewFrame; } else { CGRect adBannerViewFrame = [adView frame]; adBannerViewFrame.origin.x = 0; adBannerViewFrame.origin.y = -[self getBannerHeight:toInterfaceOrientation]; [adView setFrame:adBannerViewFrame]; CGRect contentViewFrame = _contentView.frame; contentViewFrame.origin.y = 0; contentViewFrame.size.height = self.view.frame.size.height; _contentView.frame = contentViewFrame; } [UIView commitAnimations]; } } 

您正在使用已弃用的方法/符号。

弃用意味着方法/符号仍然在这里,通常仍然有效,但是在将来的iOS版本中可能会被删除。

官方文档总是列出已弃用的方法/符号,通常会提供新的方法/符号。

所以我不想这样说,作为答案,只是阅读文档

有关iOS 6的警告并不算太坏,因为iOS 6是相当新颖的。
但是,如果可以的话也解决它们。 什么是做完了。

但似乎你也使用iOS 4.2上弃用的方法/符号!
这实际上是一个问题。 目前iOS 4的支持正在下降,所以你的实际代码可能无法工作很长时间。

所以阅读文档(再次),了解新的方法,并修复你的代码。

例如:

 ADBannerContentSizeIdentifier320x50 - deprecated in iOS 4.2 

在文档中 ,您可以阅读以下内容:

ADBannerContentSizeIdentifier320x50指示横幅视图的大小为320点,大小为50点。 这个尺寸在iPhone上用于肖像广告。 (不推荐使用,而应该使用ADBannerContentSizeIdentifierPortrait。)在iOS 4.0及更高版本中可用。 在iOS 4.2中弃用。 在ADBannerView_Deprecated.h中声明。

所以,而不是ADBannerContentSizeIdentifier320x50 ,只需使用ADBannerContentSizeIdentifierPortrait
ADBannerContentSizeIdentifier480x32相同。 改用ADBannerContentSizeIdentifierLandscape

这样你就可以安全了,你不会再有这个警告了。

然后简单地做其他符号相同。

编辑


如您的评论所述, ADBannerContentSizeIdentifierPortraitADBannerContentSizeIdentifierLandscape在iOS 6上也被弃用。

这与setCurrentContentSizeIdentifiersetRequiredContentSizeIdentifiers的弃用有关。

苹果build议不要再使用这种方法,并使用iOS的自动resizefunction。