我遵循了我找到的文档(swift 中的googleAd)。当我在我的 SpriteKit
场景中表演时。命令行“bannerView?.rootViewController = Self
”出现错误。
gamescene 无法转换为 UIViewController
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView?.adUnitID = "xxxxxxxxxxxxxxxxxxxxx"
bannerView?.delegate = self
bannerView?.rootViewController = self // -> Error "gamescene not convertible to UIViewController"
self.view?.addSubview(bannerView!)
bannerView?.loadRequest(GADRequest())
timer?.invalidate()
timer = NSTimer.scheduledTimerWithTimeInterval(40, target: self, selector: "GoogleAdRequestTimer", userInfo: nil, repeats: true)
最佳答案
您需要将这段代码放在 GameViewController.swift 中的 viewDidLoad 中,而不是放在 GameScene.swift 中。
记得将 GADBannerViewDelegate 添加到类中。
示例:
class GameViewController: UIViewController, GADBannerViewDelegate {
var scene: GameScene!
var adBannerView: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// Configure the view.
let skView = view as SKView
skView.showsFPS = false
skView.showsNodeCount = false
skView.showsPhysics = false
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene = GameScene(size: skView.bounds.size)
scene.scaleMode = .AspectFill
skView.presentScene(scene)
adBannerView = GADBannerView(frame: CGRectMake(0, 0, self.view.frame.size.width, 50))
adBannerView.delegate = self
adBannerView.rootViewController = self
adBannerView.adUnitID = "YOUR AD ID"
var reqAd = GADRequest()
reqAd.testDevices = [GAD_SIMULATOR_ID] // If you want test ad's
adBannerView.loadRequest(reqAd)
self.view.addSubview(adBannerView)
}
我引用了两个链接,它们提供了有关如何将 Google Ad (AdMob) 添加到应用中的示例。
Google Ad's with Swift Example 1 (more detailed)
Google Ad's with Swift Example 2
希望对你有帮助
关于在 SpriteKit 中使用 Swift 的 IOS admob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26698111/