gpt4 book ai didi

iOS 6 和 iAds 给出了太多的警告

转载 作者:可可西里 更新时间:2023-11-01 06:25:15 27 4
gpt4 key购买 nike

这是我的 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

documentation ,您可以阅读以下内容:

ADBannerContentSizeIdentifier320x50 Indicates that the banner view is 320 points by 50 points in size. This size is used on iPhone for portrait advertisements. (Deprecated. Use ADBannerContentSizeIdentifierPortrait instead.) Available in iOS 4.0 and later. Deprecated in iOS 4.2. Declared in ADBannerView_Deprecated.h.

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

这样你就安全了,你将不再收到关于此的警告。

然后简单地对其他符号执行相同的操作。

编辑


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

这与 setCurrentContentSizeIdentifiersetRequiredContentSizeIdentifiers 的弃用有关。

Apple 建议不要再使用这种方法,而是使用 iOS 的自动调整大小功能。

关于iOS 6 和 iAds 给出了太多的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12697330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com