gpt4 book ai didi

ios - interstitialWillDismissScreen 只被调用一次

转载 作者:行者123 更新时间:2023-11-29 00:49:02 25 4
gpt4 key购买 nike

我在我的 swift 项目中使用 Admob 插页式广告,但我在重新加载广告时遇到了问题。第一个插页式广告显示正常,当调用 interstitialWillDismissScreen 时,它退出回到游戏并按预期重新加载新的插页式广告。但是,interstitialDidReceiveAd 和 interstitialWillDismissScreen 都没有被再次调用,因此在显示第二个广告后,没有其他广告通过。我错过了什么?

import GoogleMobileAds

let appDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)

class GameScene: SKScene, GKGameCenterControllerDelegate, GADInterstitialDelegate {

var interstitial: GADInterstitial!

override func didMoveToView(view: SKView) {

//preload interstitial ad
if NSUserDefaults.standardUserDefaults().boolForKey("paidToRemoveAds") == false {
interstitial = loadAd()
}

interstitial.delegate = self
}

func gameOver() {
runGoogleAd()
}

func loadAd() -> GADInterstitial {
let ad = GADInterstitial(adUnitID: "ca-app-pub-2963481692578498/7292484569")
let request = GADRequest()
request.testDevices = [kGADSimulatorID]
ad.loadRequest(request)
return ad
}

func runGoogleAd() {
if interstitial.isReady {
interstitial.presentFromRootViewController((appDelegate.window?.rootViewController)!)
}
}

func interstitialDidReceiveAd(ad: GADInterstitial!) {
print("ad loaded")
}

func interstitialWillDismissScreen(ad: GADInterstitial!) {
interstitial = loadAd()
print("loading new ad")
}
}

最佳答案

我假设 loadAd() 创建了一个新实例?您需要在新实例上设置委托(delegate):

func interstitialWillDismissScreen(ad: GADInterstitial!) {
interstitial = loadAd()

interstitial.delegate = self // <-- You forgot this.

print("loading new ad")
}

实际上,您应该在 loadAd() 中设置委托(delegate),因为它是此类的实例成员。

关于ios - interstitialWillDismissScreen 只被调用一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318853/

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