iAd 不旋转

发布于 2024-12-22 05:11:34 字数 1158 浏览 3 评论 0原文

我有一个带有 1 个 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 模拟器上进行测试。

请帮我。谢谢。

I have a Universal app with 1 iAd. Now I need to support both orientations..

I use the following code;

- (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;
    }
}

But as soon as I rotate to portrait, my app crashes with following error;

Terminating app due to uncaught exception
'NSInternalInconsistencyException', reason: 'currentContentSize must
be one of the requiredContentSizes; 'ADBannerContentSizeLandscape' is
not in {(
ADBannerContentSizePortrait )}'

I am testing on IOS4.3 simulator.

Please help me. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

家住魔仙堡 2024-12-29 05:11:34

试试这个:

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");

}

Try this:

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");

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文