Ios 当ad加载失败时,在Swift中隐藏iAd ADBannerView-无委托或委托未实现DIDFILETORECEIVEADWITHERROR
这是我正在使用的代码:Ios 当ad加载失败时,在Swift中隐藏iAd ADBannerView-无委托或委托未实现DIDFILETORECEIVEADWITHERROR,ios,swift,iad,Ios,Swift,Iad,这是我正在使用的代码: 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 bannerViewFailsToL
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:未经处理的错误(没有委托或委托未实现DidFailToReceiveAvithError:):错误域=ADErrorDomain代码=5“操作无法完成。横幅视图可见,但没有内容”UserInfo=0x7fd3fd3335e0{ADInternalErrorCode=5,NSLocalizedFailureReason=横幅视图可见但没有内容,ADInternalErrorDomain=ADErrorDomain}
使用
self.candisplaybanerads=true
时将不调用委托方法。您需要自己创建一个ADBannerView
,并为要调用的委托方法设置其Delegate
,例如,bannerView.Delegate=self
self.canDisplayBannerAds=true
是一种轻松实现iAd横幅的方法。它将为您创建一个ADBannerView
,在收到广告时显示,在未收到广告时隐藏。以这种方式实现iAd横幅时,无需实现委托方法
因此您有两个选项,删除var bannerView=ADBannerView()
并使用self.candisplaybanerads=true
提供的iAd横幅,或者删除self.candisplaybanerads=true
并完成您自己的ADBannerView
如果您决定实现自己的
ADBannerView
检查我的答案,只需忽略AdMob实现。@Daniel_Storm好的。为了让我正确理解,您能否确认如果我只使用self.candisplaybanerads=true,如果加载失败,横幅部分将隐藏?@dwinbrown是,当使用self.canDi时splayBannerAds=true
如果横幅无法从iAd网络接收广告,它将自己移出屏幕。在设备上的设置中将填充率设置为50%,并观看ADBannerView
在接收广告时显示和隐藏,但接收广告失败。@dwinbrown您是否在storyboa中添加了ADBannerView
是偶然的吗?如果是这样,请删除它。@Daniel_Storm啊,就是这样,非常感谢,现在它工作得非常好!@DanielStorm这段时间我的横幅都变白了,现在我知道为什么了!