1

我开发了一个标签栏应用程序。像标题一样,我在屏幕底部放置了一个 iad 横幅。我已经实现了这个方法来创建/销毁横幅并测试 iad 是否正常工作:

创造:

-(void)viewWillAppear:(BOOL)animated {
     if(!adView) {
        adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 315, 310, 45)];
        adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
        adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
        adView.delegate = self;
        [self.view addSubview:adView];
    }

破坏:

    - (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    // iAd
    if (adView != nil) {
        adView.delegate = nil;
        adView.hidden = YES;
        adView = nil;
       [adView release];
    }  
}

但是,如果我尝试从标签栏快速更改视图,我会收到此错误:

警告:当前存在超过 10 个 ADBannerView 或 ADInterstitialView 实例。这是对 iAd API 的滥用,广告效果将因此受到影响。此消息仅打印一次。

但是方法 create 和 destroy 总是被调用。我能做些什么来调试这个警告问题?非常感谢。

4

1 回答 1

0

您需要在 nil 之前释放实例变量,而不是相反。

adView = nil;
[adView release];

应该:

[adView release];
adView = nil;
于 2012-10-01T11:42:43.520 回答