我面临以下问题。对于我的应用程序,我想将所有与iAd相关的功能放入所有目标(tvOS,iOS,watchOS)中使用的类的扩展中。但扩展只应在iOS上提供,因为它是目前唯一支持iAd的平台。
我的代码如下:
class MenuViewController: UIViewController {
var iAdsBannerView:ADBannerView?
override func viewDidLoad() {
super.viewDidLoad();
#if os(iOS)
self.initializeIAds() // implemented in extension
#endif
}
...rest of the class...
}
扩展:
extension MenuViewController: ADBannerViewDelegate {
func initializeIAds() {
self.canDisplayBannerAds = true;
self.iAdsBannerView?.delegate = self;
self.iAdsBannerView?.hidden = true;
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
print("Showing iAds ad")
self.iAdsBannerView?.hidden = false;
}
...rest of class...
}
从基类调用initializeIAds()方法,但不调用委托方法bannerViewDidLoadAd()。
有什么建议吗?
谢谢!