0

アプリで Admob を使用しています。

次のエラーが表示されます: [GADDelegateManager didYouNilOutYourDelegate:selector:] at GADDelegateManager.m:48

Admob Banner オブジェクトを dealloc で解放しています。

このエラーの修正方法を教えてください。

-(void)displayAds {     
    self.aBannerView.adUnitID = AdmobPublisherID;  
    [self.aBannerView setDelegate:self];
    [self.aBannerView setRootViewController:roorViewController];

    if (isAdLoaded) {        
        [self.view addSubview:self.aBannerView];
    } else {
        // Initiate a generic request to load it with an ad.
        [self.view addSubview:self.aBannerView];
        [self.aBannerView loadRequest:[self createRequest]];        
        isAdLoaded = YES;
    }
}

#pragma mark GADRequest generation

- (GADRequest *)createRequest {
    GADRequest *request = [GADRequest request];

    request.testDevices = [NSArray arrayWithObjects: nil];
    return request;
}

- (void)adViewDidReceiveAd:(GADBannerView *)adView {
    NSLog(@"Received ad successfully popup");
    if(self.aBannerView !=nil) {
        self.aBannerView.hidden = NO;

    }   
}

- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error {
    NSLog(@"Failed to receive ad with error: %@", [error localizedFailureReason]);
    [self.aBannerView removeFromSuperview];
    [self showInhouseAd];
}

 - (void)adViewWillLeaveApplication:(GADBannerView *)bannerView {

}

- (void)dealloc {    
    [aBannerView release];
}

ありがとう、

4

2 に答える 2

1

セレクターの名前は、私にはかなり説明的なようです。バナー ビューを解放する前に、デリゲートを nil に設定してみてください。

- (void)dealloc {    
    [aBannerView setDelegate:nil];
    [aBannerView release];
}
于 2013-10-15T12:55:20.483 に答える
0

エラーが実際に言うように[GADDelegateManager didYouNilOutYourDelegate:selector:]。私は実際に試してみます

- (void)dealloc 
{    
    aBannerView.delegate = nil;
    [aBannerView release];
}

エラーメッセージが示すように、それはあなたの問題のようです。

于 2013-10-15T12:55:13.477 に答える