iAds和iOS 8的问题

时间:2015-01-12 22:49:27

标签: objective-c ios8 iad

当我在iOS 7上运行我的应用程序时,所有iAd都像每个视图控制器中的魅力一样工作。但是当我在iOS 8上运行我的应用程序并在我返回主视图时导航应用程序或者在收费之前可能在其他视图中导航时,iAd显示为空白。我已经尝试了所有类型的代码,并且所有代码都有问题。

- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
if (!_adBanner) {
    _adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 50)];
    [_adBanner setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:_adBanner];
}

_adBanner.delegate = self;}

-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
_adBanner.delegate=nil;
}

//代表

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
if (!_bannerIsVisible /*&& _original*/) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[_adBanner setAlpha:1];
banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
[UIView commitAnimations];
    _bannerIsVisible = YES;
}
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (_bannerIsVisible) {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[_adBanner setAlpha:0];
banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);
[UIView commitAnimations];
_bannerIsVisible = NO;
}
NSLog(@"%@",error);
}

在控制台中出现此错误:“Error Domain = ADErrorDomain Code = 7”无法完成操作。广告已从此横幅广告中删除“UserInfo = 0x7a698c20 {ADInternalErrorCode = 7,ADInternalErrorDomain = ADErrorDomain,NSLocalizedFailureReason =广告已从此横幅中卸载}”

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,我想在这里发一个答案,但在我的情况下并没有解决它(所以请接受这不是一个实际的答案)但我想提供一些我可以提供的细节在评论中做。

我在UITabBarController中切换视图时遇到完全相同的问题,当我回到第一个视图时,AdBannerView就在那里,但实际上并没有显示任何广告1分钟,即使正在运行委托方法。

我首先按照本指南(https://www.youtube.com/watch?v=_0Mv44FWw0A&feature=youtu.be)了解了如何设置AdBannerViews的共享实例,这可能与您正在做的事情有关,但这可能有所帮助;你永远都不会知道。

就我而言,那没有做任何事情。

但我确实实施了viewWillDisappear

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.adBanner.delegate = nil;
    self.adBanner = nil;
    [self.adBanner removeFromSuperview];

}

如果我注释掉该代码,我会收到您在控制台中遇到的相同错误,错误代码为7.如果我没有注释掉该代码,我会毫无错误地通过(即{{1永远不会运行)。

但是,我面临的问题是,当我从另一个标签返回视图时,viewWillAppear会立即运行,didFailToReceiveAdWithError会立即运行,但这实际上不会带来广告1分钟,而我留下了一个空白的白色横幅。

此外,我正在运行bannerViewDidLoadAd中的加载代码(因为每次回到此viewWillAppear时都会调用此代码,而不是ViewController

viewDidLoad

我不确定这是否会有所帮助。我希望它确实如此,如果确实如此,或许我们可以共同努力了解为什么我的iOS 8也不起作用!