2010-12-30 1 views
1

Я включил iAd-код, однако как на симуляторе, так и на моем устройстве ему нравится, когда iAd исчезает через некоторое время, даже когда интернет-соединение прекрасное. Есть ли что-то, что я сделал не так с моей реализацией, или это просто ожидалось? Ниже приведен код и консоль, в которых показано, как часто вызывается оба. Благодаря!Код iAd sketchy

- (void)viewDidLoad { 
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    adView.frame = CGRectOffset(adView.frame, 0, 435); //orginally -50 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50; 
    [self.view addSubview:adView]; 
    adView.delegate = self; 
    self.bannerIsVisible = NO; 

    [super viewDidLoad]; 
} 

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

if (!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; 
     // banner is invisible now and moved out of the screen on 50 px 
     banner.frame = CGRectOffset(banner.frame, 0, -25); //orginally 50 
     [UIView commitAnimations]; 
     self.bannerIsVisible = YES; 
    } 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    NSLog(@"bannerViewRecievedError"); 
if (self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     // banner is visible and we move it out of the screen, due to connection issue 
     banner.frame = CGRectOffset(banner.frame, 0, 25); //orginally -50 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

- (void)dealloc { 
    NSLog(@"dealloc"); 
    adView.delegate=nil; 
    [adView release]; 
    [super dealloc]; 
} 

Вот что консоль говорит:

2010-12-29 20:04:17.717 app[48943:207] bannerViewRecievedError 
2010-12-29 20:04:52.410 app[48943:207] bannerViewRecievedError 
2010-12-29 20:05:17.168 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:05:47.166 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:06:16.993 app[48943:207] bannerViewRecievedError 
2010-12-29 20:06:46.803 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:07:17.314 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:07:47.140 app[48943:207] bannerViewRecievedError 
2010-12-29 20:08:19.899 app[48943:207] bannerViewRecievedError 
2010-12-29 20:08:46.978 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:09:17.106 app[48943:207] bannerViewRecievedError 
2010-12-29 20:09:46.930 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:10:17.114 app[48943:207] bannerViewDidLoadAd 
2010-12-29 20:10:47.609 app[48943:207] bannerViewDidLoadAd 
+0

Вы можете помочь мне на этом .. http://stackoverflow.com/questions/5953418/implementation-for-iad – ajay

ответ

1

Нет, нет никакой проблемы. Apple постоянно рекламирует новые моделируемые объявления, и иногда вам удастся с ошибкой проверить свои возможности обработки ошибок. Вероятно, ошибка означает «Нет доступной инвентаризации», которая заставит ваше объявление исчезнуть. От relevant developer documentation:

If an error occurs, the banner view calls the delegate’s bannerView:didFailToReceiveAdWithError: method. When this happens, your application must hide the banner view. Listing 2-3 shows one way you might implement this. It uses the same property as Listing 2-2 to keep track of whether the banner is visible. If the banner is visible and an error occurs, it moves the banner off the screen.

Even after an error is sent to your delegate, the banner view continues to try to download new advertisements. The combination of these two delegate methods allows you to display the banner only when advertisements are loaded.

Хорошая работа по эффективной обработке ошибок!

+0

Вы можете помочь мне на этом .. http://stackoverflow.com/questions/5953418/implementation -for-iad – ajay

0

Он предназначен для этого, чтобы убедиться, что вы правильно справляетесь с ошибками iAd. Он будет случайным образом давать вам ошибки, а также хорошие тестовые данные.

+0

вы можете мне помочь в этом. http://stackoverflow.com/questions/5953418/implementation-for-iad – ajay