iAd BannerView contentsizeIdentifier纵向还是320x50? [英] iAd BannerView contentsizeIdentifier Portrait or 320x50?

查看:76
本文介绍了iAd BannerView contentsizeIdentifier纵向还是320x50?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以在viewdidload中我有

So in viewdidload i have

adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;

用于iAd的横幅.我为iOS 4.2+构建的调试器控制台告诉我:

for the banner of an iAd. i I build for iOS 4.2+ the debugger console tells me this:

ADBannerView:已弃用ADBannerContentSizeIdentifier320x50, 请改用ADBannerContentSizeIdentifierPortrait

ADBannerView: ADBannerContentSizeIdentifier320x50 is deprecated, please use ADBannerContentSizeIdentifierPortrait instead

然后我这样做:

adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;

在4.1及更低版本上,应用崩溃提示我EXC_BAD_ACCESS.

and on 4.1 and lower the app crashes telling me EXC_BAD_ACCESS.

我不知道该选哪个,但是320x50的那个可以在较新的版本上使用,但是我从控制台收到了该通知/错误.有什么建议吗?

I dont know which one to take, but the one with 320x50 works on newer versions, but i get that notification/error from the console. Any suggestions?

推荐答案

好吧,我可以像这样工作:

Ok i got it to work like this:

NSString *os = [[UIDevice currentDevice] systemVersion];
        NSString *ioss = [os stringByReplacingOccurrencesOfString:@"." withString:@""];
        if ([ioss length] == 2) {
            NSLog(@"length = 2");
            float x = ([ioss floatValue]*10);
            NSString *ios = [[NSString alloc] initWithFormat:@"%.f",x];
            if ([ios floatValue] > 419) {
                NSLog(@"Portrait");
                adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
                adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
            } else {
                NSLog(@"320x50");
                adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
                adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
            }

        }
        else if ([ioss length] == 3) {
            NSString *ios = ioss;
            NSLog(@"length = 3");
            if ([ios floatValue] > 419) {
                NSLog(@"Portrait");
                adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
                adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
            } else {
                NSLog(@"320x50");
                adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
                adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
            }

        }

请注意,此方法可用于所有其他类型的东西,它的作用是检测ios版本,并在高于给定版本和低于给定版本时执行操作.

Note that this method can be used for all kind of other stuff, what it does is it detects the ios version, and performs an action when it is above a given version and below.

但这也适用于我的情况:

but also this works in my case:

if ( &ADBannerContentSizeIdentifierPortrait != NULL ) {
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
} else {
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
}

这篇关于iAd BannerView contentsizeIdentifier纵向还是320x50?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆