Swift - 从 GADBannerView 扩展后出现无法识别的选择器错误

标签 swift oop inheritance admob extend

我想构建像其他 View 一样扩展 GADBannerView 的自定义类,但它不起作用

class ListAd:GADBannerView {
    var controller: UIViewController?

    convenience init(hostView: UIView, controller: UIViewController) {
        self.init(frame: hostView.bounds)
        self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        self.translatesAutoresizingMaskIntoConstraints = false
        self.controller = controller
        hostView.addSubview(self)
    }

    func loadAd() {
        if APP.displayBannerAd {
            self.adUnitID = ADMOBIDS["banner"]
            self.rootViewController = controller
            self.load(GADRequest())
        }
    }
}

然后我初始化它

admobBanner = ListAd(hostView: self.view, controller: self)
admobBanner?.loadAd()

出现错误:

[App.ListAd setAdUnitID:]:无法识别的选择器发送到实例 0x7fe7f9c04d60'

最佳答案

尝试调用 init(adSize: GADAdSize, origin: CGPoint)init(adSize: GADAdSize) 而不是 self.init(frame:)

关于Swift - 从 GADBannerView 扩展后出现无法识别的选择器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037578/

相关文章:

java - 使用类对象作为类型

xaml - Xamarin 在 Xaml 中继承 ContentPage

inheritance - UML 中的构造型和类继承有什么区别?

swift - 什么时候应该使用断言和前提条件,什么时候可以使用保护语句,强制展开和错误处理?

swift - 如何提示在 Swift 中将哪个重写函数作为参数传递?

java - 为什么 Java API 中的许多方法都有 "abstract"修饰符?

java - 无法对 ArrayList 执行操作

ios - 按下 TabBarItem 时执行操作

快速模式匹配

java - 另一个数组列表到另一个不同类型的数组列表