A类是在目标C中编写的,具有自定义初始化功能
@interface A ()
....
@end
@implementation A
- (id)customInitImplementedInA
{
...
return self;
}
B类继承自A类,并以以下方式使用此自定义init:
@interface B : A ()
....
@end
@implementation B
+(instancetype)instanceB{
B *b = [[B alloc] customInitImplementedInA];
...
return b;
}
现在,我想创建用 Swift 编写的C类,该类从A吸取并使用相同的init函数。我怎么做?
class C: A {
//How do I use customInitImplementedInA here?
}
答案 0 :(得分:1)
您应该可以通过super.methodname
语法来做到这一点。
class C: A {
init() {
super.customInitImplementedInA()
// Any extra initialization for C goes here.
}
}
答案 1 :(得分:0)
如果您从Obj-C继承swift类,则swift clas将具有obj-c init()。 如果您需要调用它,可以将其包含在您的swift初始化中。
class C: A {
var message: B?
init(message: B) {
super.customInitImplementedInA()
self.message = message
}
}