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

しかし、タブ バーからビューをすばやく変更しようとすると、次のエラーが表示されます。

警告: 現在、ADBannerView または ADInterstitialView のインスタンスが 10 を超えています。これは iAd API の誤用であり、結果として広告のパフォーマンスが低下します。このメッセージは 1 回だけ出力されます。

ただし、create メソッドと destroy メソッドは常に呼び出されます。この警告の問題をデバッグするにはどうすればよいですか? 本当にありがとう。

4

1 に答える 1

0

インスタンス変数を nil する前に解放する必要があります。その逆ではありません。

adView = nil;
[adView release];

次のようにする必要があります。

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