Iphone 接收失败,但错误从未触发

Iphone 接收失败,但错误从未触发,iphone,ios,iad,Iphone,Ios,Iad,这是我第一次使用iPhone 在开发模式下,如果我将iPhone切换到airport模式,我正在调试的应用程序将永远不会收到此事件 但是,如果我在机场关闭的情况下启动应用程序,“BannerViewIDLoadad”事件就可以了。如果机场开启了,永远不要让DID失败接收到错误的数据 @interface ViewController : UIViewController <ADBannerViewDelegate> { ADBannerView* adView; } @pr

这是我第一次使用iPhone

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

但是,如果我在机场关闭的情况下启动应用程序,“BannerViewIDLoadad”事件就可以了。如果机场开启了,永远不要让DID失败接收到错误的数据

@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];
    }
}
@界面ViewController:UIViewController{
ADBannerView*adView;
}
@属性(非原子,保留)IBOutlet ADBannerView*adView;
...
-(无效)viewDidLoad
{
…(adView来自Interface Builder)
adView.requiredContentSizeIdentifiers=[NSSet setWithObject:AdBannerContentSizeIdentifiers 320x50];
adView.currentContentSizeIdentifier=adBannerContentSizeIdentifier 320x50;
[self.view addSubview:adView];
adView.delegate=self;
[超级视图下载];
}
-(无效)BannerView IDLoadAD:(ADBannerView*)横幅
{
NSLog(“bannerviewdidloadd”);
如果(adView.hidden)
{
NSLog(@“可见”);
[UIView beginAnimations:@“animateAdBannerOn”上下文:NULL];
adView.hidden=否;
//横幅现在不可见,并以50像素的速度移出屏幕
//banner.frame=CGRectOffset(banner.frame,0,50);
[UIView委员会];
}
}
-(无效)bannerView:(ADBannerView*)banner接收失败,错误为:(N错误*)错误
{
NSLog(@“DIDFILETORECEIVEADWITHERROR”);
如果(!adView.hidden)//显示广告横幅,但丢失了广告网络
{
NSLog(@“隐藏”);
[UIView beginAnimations:@“animateAdBannerOff”上下文:NULL];
adView.hidden=是;
//横幅可见,由于连接问题,我们将其移出屏幕
//banner.frame=CGRectOffset(banner.frame,0,-50);
[UIView委员会];
}
}
唯一的时间

 - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
当广告已经显示并收到错误时调用。当您处于飞行模式时,不会显示初始广告,因此不会调用此方法


*为清晰起见进行编辑

如果查看Apple Developer文档,您会发现您有两个选项:

  • 为了帮助您验证实施,iAd网络 偶尔返回错误以测试错误处理代码
  • 您还可以通过关闭设备的无线功能手动测试错误处理支持
  • 考虑到您无法关闭iOS模拟器的无线。您需要禁用开发系统的网络连接:


    这可能是iOS中的一个错误-但是,如果您从机场模式开始,您将永远不会看到BannerViewIDLoadAD:也不会,因此广告将保持隐藏状态,没有问题。