So in viewdidload i have
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
for the banner of an iAd. i I build for iOS 4.2+ the debugger console tells me this:
ADBannerView: ADBannerContentSizeIdentifier320x50 is deprecated, please use ADBannerContentSizeIdentifierPortrait instead
so then i do:
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
and on 4.1 and lower the app crashes telling me EXC_BAD_ACCESS.
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;
}
}
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;
}