使用Sprite Kit在Swift中隐藏或显示Google广告查看

时间:2015-08-13 01:10:01

标签: swift sprite-kit adsense

在我的游戏中,我希望在主菜单场景和场景游戏中有一个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

1 个答案:

答案 0 :(得分:0)

您的节目横幅功能可能存在错误。试着取出感叹号:

   self.googleBannerView!.hidden = false

如果横幅视图不是nil,则不需要解包