算了吧!造成问题的不是var计数器,而是AdMob代码。我的AdMob缓存了一个广告并显示了一次,然后没有缓存/创建新的广告,因此无论是否使用计数器,它都只会显示一个广告。我遵循了一个视频教程(Geeky Lemon),该教程向我展示了如何正确缓存和加载广告。然后,我重新启用了我的var计数器代码,一切都正常工作。它每点击15次就会显示一则广告。这是代码。
class Page1: UIViewController, AVAudioPlayerDelegate, GADInterstitialDelegate, UIAlertViewDelegate {
var interstitial: GADInterstitial!
var counter: Int = 0
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "6splash.png")!)
interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
let request = GADRequest()
interstitial.load(request)
}
@IBAction func playAgain(_ sender: Any) {
if counter % 15 == 0 {
if interstitial.isReady {
interstitial.present(fromRootViewController: self)
interstitial = CreateAd()
} else {
print("Ad wasn't ready")
}
}
counter += 1
}
}
func CreateAd() -> GADInterstitial {
let interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
interstitial.load(GADRequest())
return interstitial
}
简直挣扎了好几天。原来我一直在看错误的地方。我确信这一定是var计数器,因为我转换了objective-c中的这些代码片段,并遵循了Google自己的Swift教程,学习如何集成他们的sdk。我只是加载了一个广告,所以我认为柜台坏了。