gpt4 book ai didi

ios - 当广告加载失败时在 Swift 中隐藏 iAd ADBannerView - 没有委托(delegate)或委托(delegate)没有实现 didFailToReceiveAdWithError

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:43 25 4
gpt4 key购买 nike

这是我使用的代码:

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: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0x7fd3fd3335e0 {ADInternalErrorCode=5, NSLocalizedFailureReason=Banner view is visible but does not have content, ADInternalErrorDomain=ADErrorDomain}

最佳答案

在使用 self.canDisplayBannerAds = true 时,委托(delegate)方法不会被调用。你需要自己创建一个ADBannerView并设置它的delegate来调用委托(delegate)方法,例如bannerView.delegate = self

self.canDisplayBannerAds = true 是实现 iAd 横幅的简单方式。它会为你创建一个ADBannerView,如果它收到广告就显示它,如果它没有收到广告就隐藏它。以这种方式实现 iAd 横幅时无需实现委托(delegate)方法。

因此您有两个选择,删除 var bannerView = ADBannerView() 并使用 self.canDisplayBannerAds = true 提供的 iAd 横幅,或者删除 self。 canDisplayBannerAds = true 并完成实现您自己的 ADBannerView

如果您决定实现自己的ADBannerView,请查看我的回答here , 只需忽略 AdMob 实现。

关于ios - 当广告加载失败时在 Swift 中隐藏 iAd ADBannerView - 没有委托(delegate)或委托(delegate)没有实现 didFailToReceiveAdWithError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com