didFailToReceiveAdWithError永远不会触发

时间:2011-08-30 15:03:03

标签: iphone ios iad

这是我的第一部iAd for iPhone。

在开发模式下,如果我将iPhone切换到机场模式,我正在调试的应用程序永远不会收到此事件。

但是,如果我启动应用程序关闭机场,我可以获得'bannerViewDidLoadAd'活动。如果机场开启 - 永远不会得到didFailToReceiveAdWithError。

@interface ViewController : UIViewController <ADBannerViewDelegate> {

    ADBannerView* adView;
}
@property(nonatomic, retain) IBOutlet ADBannerView *adView;

...

- (void)viewDidLoad
{
    ...   (adView is from Interface Builder )
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
    [self.view addSubview:adView];
    adView.delegate=self;



    [super viewDidLoad];
}




- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    NSLog(@"bannerViewDidLoadAd");

    if ( adView.hidden )
    {
        NSLog(@"going visible");
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        adView.hidden = NO;
        // banner is invisible now and moved out of the screen on 50 px
        //banner.frame = CGRectOffset(banner.frame, 0, 50);
        [UIView commitAnimations];
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"didFailToReceiveAdWithError");
    if( !adView.hidden )  // ad banner displayed, but lost ad network
    {
        NSLog(@"going hidden");
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        adView.hidden = YES;
        // banner is visible and we move it out of the screen, due to connection issue
        //banner.frame = CGRectOffset(banner.frame, 0, -50);
        [UIView commitAnimations];
    }
}

2 个答案:

答案 0 :(得分:2)

唯一的时间

 - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error

是在广告已经显示并收到错误时调用的。当您处于飞行模式时,永远不会显示初始广告,因此不会调用此方法。

*为了清晰起见而编辑

答案 1 :(得分:0)

如果您查看Apple开发人员文档,您会发现有2个选项:

  1. 为了帮助您验证您的实施,iAd网络 偶尔会返回错误以测试您的错误处理代码。
  2. 您还可以通过关闭设备的无线功能来手动测试错误处理支持。
  3. http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/iAd_Guide/TestingiAdApplications/TestingiAdApplications.html#//apple_ref/doc/uid/TP40009881-CH6-SW1

    请注意,您无法为iOS模拟器关闭无线功能。您需要禁用开发系统的网络连接:

    IPhone Connectivity Testing: How do I force it to lose connection?