这是我第一个用于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];
}
}
这可能是iOS中的错误 - 但是,如果你开始与机场的模式,你将永远不会得到bannerViewDidLoadAd:要么,所以广告保持隐藏状态,没有问题。 – SVD