2

これについて少し助けを提供できる人はいますか?Appleから、広告が配信されていないときにまだ表示されているアドバナーが含まれているため、アプリを受け入れられないというフィードバックを受け取りました。問題は、この問題を防ぐために何をすべきかわからないことです。

[引用]

アプリケーションのレビューが完了しました。ただし、広告コンテンツが利用できない場合は空のiAdバナーが表示されるため、このバージョンをAppStoreに投稿することはできません。広告コンテンツがiAdによって配信されていないときは、アプリ内のバナーを非表示にする必要があります。この問題を説明するために、以下に追加の詳細を含めました。申請書の改訂と再提出を検討していただければ幸いです。

広告コンテンツが利用できない場合を処理するには、バナービューデリゲートを実装する必要があります。便宜上、サンプルのコードスニペットがここに含まれています。さらに、具体的な詳細については、iAdプログラミングガイドの「バナービューの操作」セクションを確認することをお勧めします: https ://developer.apple.com/iphone/prerelease/library/documentation/UserExperience/Conceptual/iAd_Guide/WorkingwithBannerViews/ WorkingwithBannerViews.html

広告が利用できない場合にバナービューを削除するためのバナービューデリゲート:

 - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
 {
  if (self.bannerIsVisible)
   {
       [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
 // assumes the banner view is at the top of the screen.
       banner.frame = CGRectOffset(banner.frame, 0, -50);
       [UIView commitAnimations];
       self.bannerIsVisible = NO;
   }
 }

今私が苦労しているのは、そのコードをどうするかです。コードを入れてみると、いくつかの赤いエラーが表示されるので、アドバイスを求めに来ます。ここで私を助けてくれる人はいますか?

編集:ポスターによって要求されたメインビューコントローラコード

    //
//  MainViewController.m
//  GBSoundboard4
//
//  Created by David Clarke on 19/06/2010.
//  Copyright __MyCompanyName__ 2010. All rights reserved.
//

#import "MainViewController.h"
#import <AVFoundation/AVAudioPlayer.h>

@implementation MainViewController
-(IBAction)goodafternoon {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"goodafternoon" ofType:@"wav"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    [theAudio play];
}

-(IBAction)jollygood {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"jollygood" ofType:@"wav"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    [theAudio play];
}
-(IBAction)playSound {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"goodmorning" ofType:@"wav"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

    [theAudio play];
}

-(IBAction)upgrade {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/gb/app/the-great-british-soundboard/id376263018?mt=8"]];
}



/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}
*/


- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {

    [self dismissModalViewControllerAnimated:YES];
}


- (IBAction)showInfo:(id)sender {    

    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    controller.delegate = self;

    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];

    [controller release];
}


- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc. that aren't in use.
}


- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations.
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/


- (void)dealloc {
    [super dealloc];
}


@end
4

3 に答える 3

4

あなたがする必要があるのはこのイベントです-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)

画面上のbannerViewスペースをカバーするようにフレームのサイズを変更し、bannerViewフレームの原点を画面の外に移動して、bannerViewを含むビューがバナーを覆うようにしますか?

B次にオン-(void)bannerViewDidLoadAd:(ADBannerView *)banner

ビューのサイズを変更してBannerView用のスペースを確保し、bannerViewフレームの原点を画面上のスペースに戻します。

于 2010-06-26T09:52:45.057 に答える
1

これをWWDC2010セッションビデオ112に実装する方法のすばらしい例があります。iPhone開発者プログラムに登録している場合は、以下に説明するように、iTunesUniversityからダウンロードできます。

あなたがアップルデベロッパプログラムに参加していると仮定すると、あなたは「みんなのためのWWDC」というタイトルの電子メールを受け取りました。iTunes Universityに到達するまで、その電子メールのリンクをたどってください。次に、フレームワークのリンクをたどり、セッション112を選択します。実装は約25分であると思います。

于 2010-06-27T17:15:28.270 に答える
0

あなたは彼らが説明していることを正確に行う必要があります。まず、MainViewControllerをADBannerViewインスタンスのデリゲートにする必要があります。次に、渡されたコードをコピーしてMainViewControllerの実装に貼り付けます。これは、バナーが画面の下部に表示されることを前提としています。上部に表示されている場合は、提供されているコードのアニメーションの方向を逆にします。

バナーが広告の読み込みに失敗した場合(サービスが公開される7月1日まで、その後もネットワークに接続されていない場合や在庫が減少した場合)、このデリゲートメソッドが呼び出されます。さらに、ADBannerViewDelegateプロトコルで説明されている他のデリゲートコールバックに応答できます。

彼らが示唆しているように、これはiAdプログラミングガイドの適切なセクションで説明されています。

于 2010-06-26T13:34:08.747 に答える