GADBannerViewDelegate不会在Swift中触发adViewDidReceiveAd
问题描述:
我在另一个名为工具的类中使用GADBannerView。但是adViewDidReceiveAd委托方法不会在Tools类中触发。我该怎么办?
I use GADBannerView in another class that named Tools. But adViewDidReceiveAd delegate method doesn't fire in Tools class. What can I do?
class Tools: NSObject, GADBannerViewDelegate {
var viewController: UIViewController!
func showAds(viewController: UIViewController) -> Void {
self.viewController = viewController
let request: GADRequest = GADRequest()
request.testDevices = [kGADSimulatorID]
let bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
bannerView.delegate = self
bannerView.rootViewController = viewController
bannerView.adUnitID = "ca-app-pub-xxx-xxx"
bannerView.loadRequest(request)
}
func adViewDidReceiveAd(bannerView: GADBannerView!) {
print("adViewDidReceiveAd");
viewController.view.addSubview(bannerView)
}
}
然后,我在ViewController中调用了工具
And, I called Tools in ViewController
override func viewDidLoad() {
super.viewDidLoad()
Tools().showAds(self);
}
答
然后我遇到了同样的问题我替换了
I had the same problem then I replaced the
private func adViewDidReceiveAd(_ bannerView: DFPBannerView) {}
with
func adViewDidReceiveAd(_ bannerView: GADBannerView) {}
然后解决了问题。我希望它也对您有帮助。
then problem is solved. I hope it helps you, too.