2011-12-17 35 views
0

我有1個iAd的通用應用程序。現在我需要支持這兩種方向..我使用下面的代碼;iAd不旋轉

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

    if (&ADBannerContentSizeIdentifierPortrait != NULL) { 
     // NEWER 
     if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) 
      adView_.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; 
     else 
      adView_.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
    } else { 
     // OLDER 
     if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) 
      adView_.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32; 
     else 
      adView_.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; 
    } 
} 

但是,只要我旋轉到肖像,我的應用程序崩潰與以下錯誤;

終止應用程序由於未捕獲的異常 'NSInternalInconsistencyException',原因:「currentContentSize必須 是requiredContentSizes之一; 'ADBannerContentSizeLandscape' 是 不是在{( ADBannerContentSizePortrait)}」

我上IOS4.3模擬器測試。

請幫幫我。謝謝。

+0

請建議針對上述問題.. – testndtv

回答

0

試試這個:

if ([[[UIDevice currentDevice] systemVersion] compare:@"4.2" options:NSNumericSearch] == NSOrderedAscending) { 

    adBanner.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50]; 

    adBanner.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; 

    NSLog(@"below 4.2"); 

} else { 

    adBanner.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 

    adBanner.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 

    NSLog(@"4.2 or above"); 

}