3

SDK 4.2 と iOS5 では、混乱が生じました。私の新しいタブバー ベースのアプリには、複数のビュー コントローラーがあります。すべての iAd デリゲート メソッドが存在することを注意深く確認し、再確認しました。実際、これには iAdSuite の例を参考にしました。

テスト広告を表示しないviewControllerで、シミュレーターでアプリをしばらく実行したままにしました。次のメッセージ (複数) がコンソールに記録されているのを見ました。

2011-10-30 18:45:07.534 StopAlert[29299:207] ADBannerView: 未処理のエラー (デリゲートまたはデリゲートが didFailToReceiveAdWithError を実装していません:): エラー ドメイン = ADErrorDomain コード = 3 「操作を完了できませんでした。広告インベントリ利用できません" UserInfo=0x795d7d0 {ADInternalErrorCode=3, NSLocalizedFailureReason=広告枠を利用できません}

.m ファイルにはこれらのデリゲート メソッドがありますが、「デリゲートもデリゲートも実装されていません...」と指摘されているのが気になります。どうぞ:

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
   [self layoutForCurrentOrientation:YES];
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
[self layoutForCurrentOrientation:YES];
}

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {
return YES;
}

- (void)bannerViewActionDidFinish:(ADBannerView *)banner {
}

私は何かが欠けていますか?? 4 つすべてにブレークポイントを設定しましたが、ヒットしていないことは確かです。バナーのデリゲートは「self」に設定されており、.h ファイルの宣言にはADBannerViewDelegateも含まれています。

私は困惑しています。誰かが私がそれを乗り越えるのを手伝ってくれますか?

前もって感謝します。

4

1 に答える 1

2

検索でこの質問に出くわした人のために、iAdSuite のサンプル コード (および複数のビューで広告バナーを共有することに関するテクニカル ノート) で私を驚かせた理由を理解しました。テクニカル ノートの例では、その applicationDidFinishLaunching で設定された adBanner を実行します。これは iAdSuite で機能しました (これがキッカーです) 最初のビューは adBanner を表示しようとしなかったためです。では、微妙な問題は?サム? そして、最初のビューに adBanner を表示したいアプリに遭遇しました。アプリのデリゲートが applicationDidFinishLaunching メッセージを取得する前に、ビューが既に読み込まれているということです。私の場合、adBanner セットアップ コードをアプリ デリゲートから移動し、最初のビュー コントローラーの viewWillAppear に配置しました。そして、adBanner がそうしない場合にのみ、初期化セットアップを行います。

于 2012-01-14T06:28:34.823 に答える