1

我很难弄清楚整个 iAd 实施是如何工作的!在论坛中搜索并尝试了很多不同的方法后 - 我仍然没有找到解决我的问题的方法!我制作了一个带有导航控制器和许多视图控制器的应用程序。我使用此代码在我的 ViewController.h 中显示广告:

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>


@interface ViewController : UIViewController <ADBannerViewDelegate>


@end

我是我的 ViewController.m:

#import "ViewController.h"


@interface ViewController ()

@end

@implementation ViewController

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)bannerViewDidLoadAd:(ADBannerView *)banner {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [banner setAlpha:1];
    [UIView commitAnimations];


}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [banner setAlpha:0];
    [UIView commitAnimations];
}


@end

然后我只需将 iAd 横幅从情节提要拖到我的 ViewController 中并将其 alpha 设置为 0。它确实有效 - 因此横幅在有连接时显示,而在没有连接时消失。问题是我收到此警告:当前存在超过 10 个 ADBannerView 或 ADInterstitialView 实例。这是对 iAd API 的滥用,广告效果将因此受到影响。此消息仅打印一次。我已经知道为什么会发生这种情况,多亏了你们……但我不知道如何解决这个问题!如果有人可以帮我解决这个问题,那就太好了,我已经尝试了好几天了!我不得不说我刚刚开始使用 xcode,所以这对我来说有点难。

提前非常感谢!

4

1 回答 1

0

嗯,我不能告诉你你得到的错误信息。但这对我有用:

视图控制器.m:

#import <iAd/iAd.h>

@property (nonatomic, retain) IBOutlet ADBannerView *adView;

将此行添加到视图控制器并将出口连接到情节提要上的 iAd 对象。还将 iAd 代理设置为 ViewController。然后将这两个方法添加到您的视图控制器中:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    [_adView setHidden:NO];
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    [_adView setHidden:YES];
}

就是这样,现在您应该在模拟器中看到 iAd 测试广告,并且没有为我显示任何错误消息。

于 2013-07-29T20:46:02.137 回答