使用Swift在xcode 6中进行iAd

我正在努力在场景中实现横幅广告,但它始终报告“线程1:EXC_BREAKPOINT(代码= EXC_ARM_BREAKPOINT,子代码= Oxdefe),程序停止运行.
我在关于iAd(“ Swift – ADBannerView”)的另一个问题中引用了 Mr. T’s answer,但仍然无法做到.

代码如下所示:

import UIKit
 import SpriteKit
 import iAd
 class GameViewController: UIViewController,ADBannerViewDelegate {

@IBOutlet var adBannerView: ADBannerView
override func viewDidLoad() {
    super.viewDidLoad()
    println("view loaded")

    //iAd
    self.canDisplayBannerAds = true
    self.adBannerView.delegate = self
    self.adBannerView.alpha = 0.0 
     if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        let skView = self.view as SKView
        skView.showsFPS = true
        skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene.scaleMode = .AspectFill

        skView.presentScene(scene)
    }
}
 //iAd
func bannerViewWillLoadAd(banner: ADBannerView!) {


    println("sort of working1")

}

func bannerViewDidLoadAd(banner: ADBannerView!) {


    self.adBannerView.alpha = 1.0 
    println("sort of working2")

}

func bannerViewActionDidFinish(banner: ADBannerView!) {


    println("sort of working3")

}

func bannerViewActionShouldBegin(banner: ADBannerView!,willLeaveApplication willLeave: Bool) -> Bool {



    println("sort of working4")
    return true 
}

func bannerView(banner: ADBannerView!,didFailToReceiveAdWithError error: NSError!) {


}
}

我在Main.storyboard中创建了一个ADBannerView,并将其与@IBOutlet adBannerView相关联.

有谁帮我搞清楚了?

这就是我做到的,可能并非所有这些都是必要的.

我没有在故事板中使用横幅,因此IBOutlet不是必需的.

此外,如果手动创建横幅,则无需设置self.canDisplayBannerAds

此功能(从ObjC移植)是我展示广告的方式.

func loadAds(){
  adBannerView = ADBannerView(frame: CGRect.zeroRect)
  adBannerView.center = CGPoint(x: adBannerView.center.x,y: view.bounds.size.height - adBannerView.frame.size.height / 2)
  adBannerView.delegate = self
  adBannerView.hidden = true
  view.addSubview(adBannerView)
}

这在viewDidLoad中调用.然后,在didLoadAd委托方法中,我设置了adBannerView.hidden = false,在didFailToReceiveAdWithError中,adBannerView.hidden = true

在这种情况下,我认为隐藏比alpha更好,因为它感觉更自然.我相信(但不确定)当隐藏时,GPU根本不会绘制视图,而alpha为0时,它仍然被绘制,但是不可见(如果我错了,请纠正我).

这是我的设置,它对我有用,所以希望它也适用于你的情况!

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...