2015-02-24 94 views
1

我的应用程序在App Store上,它不显示任何广告。因此,联系Apple和接收无解后,我在控制台中看到这个错误,同时运行在模拟器上我的应用程序:ADBannerView错误(没有委托或委托没有实现didFailToReceiveAdWithError :)

[AppDeveloper] ADBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=1 "Service session terminated." UserInfo=0x7f18e160 {ADInternalErrorCode=1002, NSLocalizedDescription=Service session terminated.} 

这就是为什么我的应用程序不显示任何广告,只是原因显示白色ADBannerView是哪里?

+2

好吧,考虑到错误,它可能是一个很好的开始。您也可能在尝试加载广告时发生错误,并引发此异常,以通知您没有任何内容会拦截该错误。 – 2015-02-24 19:57:48

+0

该错误不是广告未显示的原因。我不知道原因是什么,这可能仅仅是因为目前没有适用于您的应用的广告(填充率并非总是100%)。这就是为什么你需要实现didFailToReceiveAdWithError来处理这种情况。例如,您可以隐藏横幅,以便用户看不到空的白色矩形。 – almas 2015-02-24 23:09:08

回答

0

听起来像你没有包括ADBannerView的委托方法。我已经评论过您的代码中可能缺少的部分。

#import <iAd/iAd.h> 

@interface ViewController() <ADBannerViewDelegate> // Have you included this? 

@end 

@implementation ViewController { 
    // Your iAd Banner 
    ADBannerView *iAdView; 
} 

-(void)viewDidLoad { 
    [super viewDidLoad]; 

    // Setup iAd view 
    iAdView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 

    iAdView.delegate = self; // And have you done this? 

    [iAdView setFrame:CGRectMake(0, 0, iAdView.bounds.size.width, iAdView.bounds.size.height)]; 
    iAdView.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height - (iAdView.bounds.size.height/2)); 
    [self.view addSubview:iAdView]; 
    iAdView.alpha = 0.0; 
} 

// And have you included these delegate methods to handle when an ad is received or not? 
-(void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    NSLog(@"iAd received ad"); 
    // display ad 
    iAdView.alpha = 1.0; 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    NSLog(@"iAd failed"); 
    // Hide ad 
    iAdView.alpha = 0.0; 
} 
+0

谢谢,在我的应用程序今天没有广告出现一周后,他们刚刚出现,这意味着代码可以正常使用 – 2015-02-25 05:43:00