2011-07-14 5 views
2

だから、のviewDidLoadで、私はのiAdのバナーにiAd BannerView contentsizeIdentifierポートレートまたは320x50?

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

を持っています。私、私は4.2 + iOS用ビルドするデバッガコンソールは、この私に語った:

ADBannerView:ADBannerContentSizeIdentifier320x50は廃止され、 はそうそして、私が代わりに

ADBannerContentSizeIdentifierPortraitを使用してください:

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

をし、 4.1で私はEXC_BAD_ACCESSを教えてアプリのクラッシュを低くします。

私はどちらを取るか知っていませんが、320x50のものは新しいバージョンで動作しますが、コンソールからその通知/エラーを受け取ります。助言がありますか?

+1

あなたは、質問からの回答を削除答えとして、それを追加し、それを受け入れる必要があります。それはそれを探しに来る人々だろう。 –

答えて

5

は、[OK]を私はそれがこのように動作するようになった:このメソッドは、他のもののすべての種類のために使用することができることを

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のバージョンを検出し、実行します指定されたバージョンとそれより下のバージョンのアクションです。

だけでなく、これは私の場合には動作します:

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

ADBannerContentSizeIdentifierPortraitは、4.2より前のバージョンのiOSでは存在しないため、エラーが発生しています。シンボルが存在するかどうかをチェックし、そのシンボルに基づいてプロパティを設定します。

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

その前にある「自己」は絞られていて、残りは大丈夫です。 – JonasG

+0

@Maxner実際には、私の 'ADBannerView'インスタンスを' self.bannerView'と宣言したサンプルコードからコピーしました。それはなぜ私がそれを使用したかを説明するはずです。 –

+0

@Maxnerまた、['this link'](http://blog.onstreamtv.de/?p=489)は、バージョンのサポートに関して役立つはずです。 –

関連する問題