2011-08-30 118 views
0

这是我第一个用于iPhone的iAd。didFailToReceiveAdWithError永远不会触发

在开发模式下,如果我将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]; 
    } 
} 
+0

这可能是iOS中的错误 - 但是,如果你开始与机场的模式,你将永远不会得到bannerViewDidLoadAd:要么,所以广告保持隐藏状态,没有问题。 – SVD

回答

2

唯一一次

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

被称为是当已经显示广告,并收到一个错误。当您处于飞行模式时,不会显示初始广告,因此不会调用此方法。

*编辑为清楚起见

0

如果你检查你注意到了苹果开发者文档,你有两个选择:

  1. 为了帮助您确认您的实现,iAd网络 偶尔返回错误来测试你的错误处理代码。
  2. 您也可以通过关闭设备的无线功能来手动测试您的错误处理支持。

http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/iAd_Guide/TestingiAdApplications/TestingiAdApplications.html#//apple_ref/doc/uid/TP40009881-CH6-SW1

考虑到,你不能关闭无线的iPhone模拟器。你需要禁用开发系统的网络连接:

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

相关问题