как отобразить тестовый баннер IAd в симуляторе - PullRequest
3 голосов
/ 10 мая 2011

Привет всем, что я импортировал работу фрейма 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 в симуляторе. Спасибо заранее.

Я получил решение

я предоставил ответ по ссылке ниже

Почему тестовый проект iAd for barebones не отображается?

Ответы [ 3 ]

3 голосов
/ 08 марта 2012

Шаг 1:

1.импорт iAd Framework в приложение.

2.Введите #import в тот контроллер, на котором вы хотите показать свой Add.

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;
}];
}

Подробнее Подробнее см. ссылку

2 голосов
/ 13 мая 2011

Похоже, это проблема на стороне сервера Apple.Убедитесь, что ваш профиль обеспечения обновлен, и убедитесь, что ваше приложение зарегистрировано для получения рекламы (через itunes connect).Я не вижу ничего плохого в вашем коде.

Проверьте эту ссылку для получения дополнительной информации.

1 голос
/ 11 мая 2011

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

Еще одна вещь, AAAAAA .... Я думаю, что вы должны сначала зарегистрироваться в сети iAd от Apple через iTunes connect, чтобы получать от них какую-либо рекламу .... Я предлагаю вам проверить их документацию на iAd для большей ясности ...

...