在我的游戏中,我希望在主菜单场景和游戏结束场景中有一个 Google 横幅 View 。这是我在 GameViewController 中的内容:
override func viewWillLayoutSubviews(){
super.viewWillLayoutSubviews()
let skView = self.view as! SKView
googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
googleBannerView.rootViewController = self
var request: GADRequest = GADRequest()
googleBannerView.loadRequest(request)
googleBannerView.frame = CGRectMake(0, skView.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height)
self.view.addSubview(googleBannerView!)
if skView.scene == nil{
let mainMenuScene = MainMenuScene(size: skView.bounds.size)
mainMenuScene.scaleMode = SKSceneScaleMode.AspectFill
mainMenuScene.backgroundColor = UIColor.whiteColor()
skView.presentScene(mainMenuScene)
}
}
func showBanner(){
if googleBannerView != nil{
self.googleBannerView!.hidden = false
var request: GADRequest = GADRequest()
self.googleBannerView.loadRequest(request)
}
}
func hideBanner(){
println("hideBanner() called")
self.googleBannerView.hidden = true
}
在 GameScene 中我有这个:
override init(size: CGSize) {
super.init(size: size)
let gameViewController = GameViewController()
gameViewController.hideBanner()
当我运行它时它启动正常,但是当我按下播放时它崩溃并显示: fatal error :在展开可选值时意外发现 nil。这没有多大意义,因为它不可能为零,因为我知道有一个广告横幅,对吧?我做错了什么。先感谢您。
-文尼
最佳答案
您的显示横幅功能可能存在错误。尝试去掉感叹号:
self.googleBannerView!.hidden = false
如果横幅 View 不为零,则不需要展开
关于swift - 使用 Sprite Kit 在 Swift 中隐藏或显示 Google Ad View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977918/