必须调用超类的指定初始化程序' UIViewController'

时间:2016-02-02 05:38:36

标签: ios objective-c swift initializer

我有一个在ObjC和B类中定义的A类 - 在Swift中定义的A的子类。 实施如下:

A类

- (id)init {
     return [super init];
}

B类

init(url: NSURL) {
    super.init()
    let request = NSMutableURLRequest(URL: url)
    request.setValue(valueID, forHTTPHeaderField: "value_ID")
    urlRequest = request
}

convenience init(recoveryURL: NSURL) {
    self.init(url: recoveryURL)
}

required public init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

B类初始化如下(因为它是从xib文件加载的):

ClassB *b = [[ClassB alloc] initWithNibName:@"ClassA" bundle:nil];

错误出现在B类super.init()内的init(url: NSURL)行上。我试图使用便利初始化器。如果有人可以指点我@我在哪里错了,我将不胜感激?

1 个答案:

答案 0 :(得分:-1)

考虑将以下代码放在viewDidLoad中:

let request = NSMutableURLRequest(URL: url)
request.setValue(k_strOfferingIdValueHeader, forHTTPHeaderField: "offering_id")
urlRequest = request

这通常是最干净的选择。