2013-03-28 68 views
0

我已经在我的iPhone应用程序中实现了iAd。我正在使用故事板,并有两个viewControllers。我已经在两个viewControllers中实现了AdBannerView,并将委托设置为self。我已经导入并实施了AdBanner委托。我还实施了两种方法-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error-(void)bannerViewDidLoadAd:(ADBannerView *)banner,根据是否有可用的广告隐藏和显示adView。但是当我运行应用程序并在两个viewControllers之间来回切换大约10次时,我在Xcode的记录器中得到了这个结果。我在-(void)viewDidDisappear:(BOOL)animated方法iOS 6 iAd奇怪的警告

WARNING: More than 10 instances of ADBannerView or ADInterstitialView currently exist. This is a misuse of the iAd API, and ad performance will suffer as a result. This message is printed only once.

还设置了adView = nil这是什么意思?当我实施iAd时,我做错了什么?这是否意味着我的应用程序将被Apple拒绝?

解决:

[adView removeFromSuperview];-(void)viewDidDisappear:(BOOL)animated方法做到了!

+0

没有ü删除ADBannerView时浏览到另一个视图控制器? –

+1

检查您的视图加载时是否只创建一个iAd视图实例,并且只隐藏和显示它在这些代理方法中,而不是删除和重新创建... – jjv360

+0

Developer.iOS我已经设置了adView = nil是viewDidUnload方法,如果这是你的吗? – Peter

回答

2

试试这个,我觉得你的问题解决

- (void) viewWillDisappear:(BOOL)animated 
{ 
[_adView removeFromSuperview]; 
_adView.delegate = nil; 
_adView = nil; 
} 
+1

是的!谢谢!这已经让我疯狂了好几个小时了! – Peter

0

由于错误状态,您的应用中有超过10个横幅视图。通常这是因为在导航控制器场景中处理不当的广告而导致的。您需要使用横幅视图的单例实例。

Google uibannerview single instance