Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Sprite套件在Swift中隐藏或显示谷歌广告视图_Swift_Sprite Kit_Adsense - Fatal编程技术网

使用Sprite套件在Swift中隐藏或显示谷歌广告视图

使用Sprite套件在Swift中隐藏或显示谷歌广告视图,swift,sprite-kit,adsense,Swift,Sprite Kit,Adsense,在我的游戏中,我希望在主菜单场景和游戏场景中有一个谷歌横幅视图。以下是我在GameViewController中拥有的功能: override func viewWillLayoutSubviews(){ super.viewWillLayoutSubviews() let skView = self.view as! SKView googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortra

在我的游戏中,我希望在主菜单场景和游戏场景中有一个谷歌横幅视图。以下是我在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
}
在游戏场景中,我有以下内容:

 override init(size: CGSize) {
    super.init(size: size)

    let gameViewController = GameViewController()

    gameViewController.hideBanner()
当我运行此程序时,它启动正常,但当我按play时,它崩溃并显示:致命错误:在展开可选值时意外发现nil。这没有多大意义,因为它不可能是零,因为我知道有一个广告横幅,对吗?我做错了什么。先谢谢你


-Vinny

您的显示横幅功能可能有错误。试着去掉下列句子中的感叹号:

   self.googleBannerView!.hidden = false

如果横幅视图不是nil,则不需要展开它。

显示横幅功能中可能存在错误。试着去掉下列句子中的感叹号:

   self.googleBannerView!.hidden = false

如果横幅视图不是nil,则不需要展开它。谢谢你的回复。不幸的是,你的建议不起作用。问题在于hideBanner()函数。有什么想法吗?我自己也是一个初学者,所以我的答案没有多大帮助,但是当遇到这个错误时,在使用optionals时发现错误的一个好方法是使用if语句来确保你的可选值有一些值,或者在使用它们之前输出可选值以确保它们里面有一些值谢谢你的回答。事实证明,出于某种原因,广告横幅总是等于零。我知道为什么,你知道吗?提前谢谢你。谢谢你的回复。不幸的是,你的建议不起作用。问题在于hideBanner()函数。有什么想法吗?我自己也是一个初学者,所以我的答案没有多大帮助,但是当遇到这个错误时,在使用optionals时发现错误的一个好方法是使用if语句来确保你的可选值有一些值,或者在使用它们之前输出可选值以确保它们里面有一些值谢谢你的回答。事实证明,出于某种原因,广告横幅总是等于零。我知道为什么,你知道吗?先谢谢你。