当广告载入失败时,在Swift中隐藏iAd ADBannerView – 没有委托或委托没有实现didFailToReceiveAdWithError
这是我正在使用的代码:
var bannerView = ADBannerView() self.canDisplayBannerAds = true //show ad banner if an ad loads func bannerViewDidLoadAd(banner: ADBannerView!) {bannerView.hidden = false} //hide ad banner if the ad fails to load func bannerViewFailsToLoadAd(banner: ADBannerView!,didFailToReceiveAdWithError error: NSError!) {bannerView.hidden = true println("failed to receive ad")}
当我将iAd填充率设置为0时,没有任何东西被打印,我从控制台得到这个输出:
ADBannerView:未处理的错误(没有委托或委托没有实现didFailToReceiveAdWithError :):错误域= ADErrorDomain代码= 5“操作无法完成横幅视图是可见的,但没有内容”UserInfo = 0x7fd3fd3335e0 {ADInternalErrorCode = 5, NSLocalizedFailureReason =横幅视图可见,但没有内容,ADInternalErrorDomain = ADErrorDomain}
使用self.canDisplayBannerAds = true
时, 不会调用委托方法。 您需要自己创build一个ADBannerView
并为要调用的委托方法设置其delegate
,例如bannerView.delegate = self
。
self.canDisplayBannerAds = true
是实现iAd横幅的一种毫不麻烦的方式。 它将为您创build一个ADBannerView
,如果它收到广告则显示该广告,如果没有收到广告,则将其隐藏。 以这种方式实现iAd横幅时,不需要实施委托方法。
所以你有两个select,删除var bannerView = ADBannerView()
并使用self.canDisplayBannerAds = true
提供的iAd横幅,或者删除self.canDisplayBannerAds = true
并完成自己的ADBannerView
。
如果您决定实施自己的ADBannerView
请查看我的答案,只需忽略AdMob实施。