我很难弄清楚整个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横幅从storyboard拖到我的ViewController中,并将其alpha设置为0。 它实际上是有效的 - 所以当有连接时横幅显示,没有连接时显示消息。 问题是我收到此警告:当前存在超过10个ADBannerView或ADInterstitialView实例。这是对iAd API的误用,因此广告效果会受到影响。此消息仅打印一次。 我知道为什么会发生这种情况,感谢你们...但我不知道如何解决这个问题! 如果有人可以帮助我,这将是很好的,我现在尝试了几天! 我不得不说我刚刚开始使用xcode,这对我来说很难。
提前多多感谢!
答案 0 :(得分:0)
嗯,我无法告诉你有关你得到的错误信息。但这对我有用:
ViewController.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测试广告,并且没有显示任何错误消息。