2015-08-13 3 views
1

В моей игре я хотел бы, чтобы в главной сцене и в игре над сценой отображался значок баннера Google. Вот что я имею в GameViewController:Скрытие или отображение Google Ad View в Swift с комплектом спрайтов

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() 

При запуске этого он запускается нормально, но когда я нажимаю играть он падает и говорит: фатальная ошибка : неожиданно найдено нуль при развертывании необязательного значения. Это не имеет большого смысла, потому что это не может быть ноль, потому что я знаю, что есть рекламный баннер, верно? Что я делаю неправильно. Заранее спасибо.

-Vinny

ответ

0

Там могло быть ошибка в функции шоу баннер. Попробуйте вынимая восклицание в:

self.googleBannerView!.hidden = false 

Если вид баннера не ноль, то не нужно разворачивал

+0

Привет. Спасибо, что ответили. К сожалению, ваше предложение не сработало. Проблема заключается в функции hideBanner(). Есть идеи? –

+0

Я сам начинаю, поэтому мой ответ был не очень полезен, но когда дело доходит до этой ошибки, хороший способ найти ошибки при использовании опций - использовать инструкции if, чтобы убедиться, что ваш дополнительный параметр имеет какое-то значение или выводит дополнительные значения перед их использованием чтобы убедиться, что у них есть какая-то ценность внутри них. – Muhammad

+0

Спасибо, что ответили. Оказывается, по какой-то причине рекламный баннер всегда равен нулю. Я знаю, почему, не так ли? Заранее спасибо. –

Смежные вопросы