我在我的所有应用上使用相同的代码来显示iAd广告,但在下载xcode 7并将我的代码转换为swift2后,广告不再出现在我的设备或xcode模拟器上。有谁知道需要做出哪些改变?
import UIKit
import SpriteKit
import iAd
class GameViewController: UIViewController, ADBannerViewDelegate {
var adBanner: ADBannerView? = ADBannerView()
override func viewDidLoad() {
super.viewDidLoad()
adBanner?.delegate = self
adBanner?.hidden = true
self.canDisplayBannerAds = true
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
adBanner?.hidden = true
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
adBanner?.hidden = false
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
return willLeave
}
}
答案 0 :(得分:0)
你正在混淆两种方法。有两种显示iAd横幅的方式。首先,让iAd知道你想要在你的视图控制器上显示横幅,让iAd完成其余的工作。这是通过调用以下方法完成的:
self.canDisplayBannerAds = true
第二种方法是首先加载横幅,然后手动将其添加到视图中。为此,首先使用所需类型初始化横幅并设置其委托:
var adBanner: ADBannerView? = ADBannerView(adType: ADAdType.Banner)
adBanner?.delegate = self
然后,当加载横幅时,我们必须将其添加到视图中,例如:
func bannerViewDidLoadAd(banner: ADBannerView!) {
self.view.addSubview(banner)
}
在我添加到superview的横幅之前,无需更改hidden
属性。
答案 1 :(得分:0)
你有没有考虑过iAd网络暂时关闭? 始终保留Apples自己的iAd Suite副本: https://developer.apple.com/library/ios/samplecode/iAdSuite_Storyboard/Introduction/Intro.html
如果他们自己没有加载,你的也不会加载。
现在我收到这个自我解释的错误消息:
NSLocalizedFailureReason=Ad inventory unavailable
希望有所帮助。