1

コードの 2 つの部分があります

プリロード

interestial = [[GADInterstitial alloc] init];
[interestial loadRequest:request]

見せる

[interestial presentFromRootViewController:]

次回インタースティシャルを正しく表示するにはどうすればよいですか? ARCありとなし

プリロード

if(arc) [interstitial release];
interstitial = [[GADInterstitial alloc] init];
[interstitial loadRequest:request]

見せる

[interstitial presentFromRootViewController:self]

- また

初期化

interstitial = [[GADInterstitial alloc] init];

プリロード

[interstitial loadRequest:request]

見せる

[interstitial presentFromRootViewController:self]

- また

初期化

interstitial = [[GADInterstitial alloc] init];
[interstitial loadRequest:request];

プリロード

// nothing

見せる

[interstitial presentFromRootViewController:self];
[interstitial loadRequest:request];

最後のオプションが正しくない場合、present が呼び出された後、プリロードを待つ必要がある時間はどれくらいですか? または、デリゲートをリッスンするか、ユーザーアクションがプリロードを開始するのを待つ必要がありますか?

4

1 に答える 1

10

GADInterstitialDelegateinterstitialDidDismissScreen:からのメソッドをリッスンする必要があります。これにより、最初のインタースティシャルが終了したことがわかり、次のインタースティシャルの準備を開始できます。

したがって、次のようなものになります。

// During init time.
self.interstitial = [[GADInterstitial alloc] init];
self.interstitial.adUnitID = MY_INTERSTITIAL_UNIT_ID;
self.interstitial.delegate = self;
[self.interstitial loadRequest:[GADRequest request]];

...


// During show time.
[self.interstitial presentFromRootViewController:self];

...

// When user dismisses the interstitial.
- (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial {
  self.interstitial.delegate = nil;
  if (!arc) {
    [self.interstitial release];
  }

  // Prepare next interstitial.
  self.interstitial = [[GADInterstitial alloc] init];
  self.interstitial.adUnitID = MY_INTERSTITIAL_UNIT_ID;
  self.interstitial.delegate = self;
  [self.interstitial loadRequest:[GADRequest request]];
}
于 2013-03-31T00:14:01.463 に答える