iAdが隠れていても全く新しい広告が出ないわけではないらしい
最初、自分はこのワーニングが出た場合、広告がちゃんと全面表示されないと bannerViewDidLoadAd: はそれ以降呼ばれないのだと思っていた。
だけど、そのまま放置していたら bannerViewDidLoadAd: が定期的に呼ばれていた。
下記が広告を他のビューの下に隠した時のログ
2012-09-15 16:36:02.909 myApp[8887:707] -[MyViewController viewDidAppear:] 2012-09-15 16:36:04.037 myApp[8887:707] -[MyViewController bannerViewDidLoadAd:] 2012-09-15 16:36:04.042 myApp[8887:707] ADBannerView: WARNING A banner view (0x2d5160) has an ad but may be obscured. This message is only printed once per banner view. 2012-09-15 16:41:04.038 myApp[8887:707] -[MyViewController bannerViewDidLoadAd:] 2012-09-15 16:46:03.973 myApp[8887:707] -[MyViewController bannerViewDidLoadAd:]
これを見る限り 5分毎に bannerViewDidLoadAd: が呼ばれている。
で、広告を隠していた View をどかした後のログはこんな感じ
2012-09-15 16:12:45.596 myApp[10247:707] -[MyViewController viewDidAppear:] 2012-09-15 16:12:49.278 myApp[10247:707] -[MyViewController bannerViewDidLoadAd:] 2012-09-15 16:12:49.283 myApp[10247:707] ADBannerView: WARNING A banner view (0x284ec0) has an ad but may be obscured. This message is only printed once per banner view. 2012-09-15 16:13:50.139 myApp[10247:707] -[MyViewController bannerViewDidLoadAd:] 2012-09-15 16:14:51.156 myApp[10247:707] -[MyViewController bannerViewDidLoadAd:]
最初に bannerViewDidLoadAd: が呼ばれた時にアニメーションで広告を覆っている View をどかしている。
すると、1分毎に bannerViewDidLoadAd: が呼ばれている。
という、ただこんだけの話なんだけど、広告が隠されていたら最初の一回しか bannerViewDidLoadAd: が呼ばれないと思っていたのでビックリした!というわけ。
あ、あと、シミュレータではこのワーニングが出なくて、実機だとワーニングが出る!
最初、シミュレータで出てなかったのに実機で確認したらワーニングが出たので、何か広告の位置の計算がおかしくなったのかと思って凄くあちこち確認してしまった…。
というわけで、画面のサイズ、変えるの止めようよ〜。