在我的游戏中,我希望在主菜单场景和场景游戏中有一个Google横幅视图。这是我在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()
当我运行它时,它启动正常,但是当我按下播放时它会崩溃并说:致命错误:在解开一个Optional值时意外地发现了nil。这没有多大意义,因为它不能为零,因为我知道有一个广告横幅,对吧?我做错了什么。先感谢您。
-Vinny
答案 0 :(得分:0)
您的节目横幅功能可能存在错误。试着取出感叹号:
self.googleBannerView!.hidden = false
如果横幅视图不是nil,则不需要解包