Swift子类化ObjC类,初始化器被识别为选择器

时间:2018-10-23 09:32:12

标签: objective-c swift xcode unrecognized-selector initializer

问题很简单。我有一个Swift类,该类继承了Objective-C类:

class CJGADSearchBannerView: GADSearchBannerView {
    ...
}

然后,我将班级初始化为:

let searchBanner = CJGADSearchBannerView(adSize: kGADAdSizeFluid)

继承的Objective-C类来自GoogleMobileAdsSDK pod

一切编译正常,我可以在代码中将初始化程序追溯到其原始类:

@interface GADSearchBannerView : GADBannerView

然后:

GAD_SUBCLASSING_RESTRICTED
@interface GADBannerView : UIView

#pragma mark Initialization

/// Initializes and returns a banner view with the specified ad size and origin relative to the
/// banner's superview.
- (instancetype)initWithAdSize:(GADAdSize)adSize origin:(CGPoint)origin;

/// Initializes and returns a banner view with the specified ad size placed at its superview's
/// origin.
- (instancetype)initWithAdSize:(GADAdSize)adSize;

但是在运行时我得到:

-[CJGADSearchBannerView initWithAdSize:]: unrecognized selector sent to instance 0x7f87cbe88710

它曾经可以工作,然后在某个时候我用Xcode 10构建了它,但是它刚坏了。

我尝试将@ObjcMembers添加到新类中以防万一,这是一个推理问题,我尝试删除DerivedData以防它链接至旧代码, 我删除了Pods并再次运行pod install,尝试在Swift 3和Swift 4之间切换,尝试在Xcode 9.4和Xcode 10中进行构建,但是没有任何效果。

0 个答案:

没有答案