大家好我导入iAd帧工作并实现了iAd.My示例代码的代码如下所示
.h文件
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface IadTestViewController : UIViewController<ADBannerViewDelegate> {
BOOL isBannerVisible;
IBOutlet ADBannerView *banner;
}
@property(nonatomic,assign)BOOL isBannerVisible;
@property(nonatomic,retain)IBOutlet ADBannerView *banner;
@end
.m文件我实现了委托方法
#import "IadTestViewController.h"
@implementation IadTestViewController
@synthesize banner,isBannerVisible;
- (void)viewDidLoad {
[super viewDidLoad];
isBannerVisible=NO;
bannerView=[[ADBannerView alloc]initWithFrame:CGRectZero];
bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
bannerView.delegate=self;
[self.view addSubview:bannerView];
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!self.isBannerVisible)
{
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
// Assumes the banner view is just off the bottom of the screen.
bannerView.frame = CGRectOffset(bannerView.frame, 0, -bannerView.frame.size.height);
[UIView commitAnimations];
self.isBannerVisible = YES;
}
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"the failed error is %@",error);
if (self.isBannerVisible)
{
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
// Assumes the banner view is placed at the bottom of the screen.
bannerView.frame = CGRectOffset(bannerView.frame, 0, bannerView.frame.size.height);
[UIView commitAnimations];
self.isBannerVisible = NO;
}
}
我的xib连接已经很好地连接了。在我的模拟器中我没有得到IAd横幅而我的Log语句给我这样的错误
Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0x574fdd0 {ADInternalErrorCode=5, NSLocalizedFailureReason=Banner view is visible but does not have content}
我知道当广告为零时iAd横幅广告不可见。但是我试图显示测试广告,即使我的程序也不可能。我不知道我犯了什么错误或者我忘了执行哪一步。我看过很多类似的问题在我们的stackoverflow.com,但没有一个答案纠正我的问题。任何人都可以帮助我解决这个问题,请提供一些示例代码,以便在模拟器中显示TestAdd。谢谢你提前。
我得到了解决方案
我在以下链接中提供了答案
答案 0 :(得分:3)
第1步:
1.Import iAd Framework to the Application。
2.在要显示添加的特定控制器中提供#import。
3.提供它的委托UIViewController
4.为该特定ViewController提供一个视图。假设我已经
@property (weak, nonatomic) IBOutlet UIView *contentView;
第2步:
在ViewDidLoad方法
中分配它- (void)viewDidLoad
{
_bannerView = [[ADBannerView alloc] init];
_bannerView.delegate = self;
[super viewDidLoad];
[self.view addSubview:_bannerView];
}
第3步:
提供我提到的委托方法。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
} else {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
}
[self layoutAnimated:duration > 0.0];
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
[self layoutAnimated:YES];
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
[self layoutAnimated:YES];
}
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
return YES;
}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner
{
}
- (void)layoutAnimated:(BOOL)animated
{
if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
} else {
_bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;
}
CGRect contentFrame = self.view.bounds;
CGRect bannerFrame = _bannerView.frame;
if (_bannerView.bannerLoaded) {
contentFrame.size.height -= _bannerView.frame.size.height;
bannerFrame.origin.y = contentFrame.size.height;
} else {
bannerFrame.origin.y = contentFrame.size.height;
}
[UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{
self.contentView.frame = contentFrame;
[self.contentView layoutIfNeeded];
_bannerView.frame = bannerFrame;
}];
}
更多详情请参阅此link
答案 1 :(得分:2)
看起来这是Apple服务器端的一个问题。确保您的配置文件是最新的,并确保您的应用已注册接收广告(通过iTunes连接)。我看不出你的代码有什么问题。
查看此link了解更多信息。
答案 2 :(得分:1)
首先,你必须检查你的横幅的框架是否正确给出......如果这是正确的,那么如果你在办公室工作,你应该检查系统中的代理设置...你可能需要拥有从互联网上下载内容的下载权限。这可能只是一个问题,因为你已经说过你正在做其他所有事情......
AAAAAA还有一件事......我想你必须首先通过iTunes连接注册苹果的iAd网络以接收来自他们的任何广告....我建议你查看他们在iAd上的文档以获得更清晰...... < / p>