从 Swift 调用 Objective C 自定义初始化函数



类 A 写在目标 C 中,并具有自定义初始化功能

@interface A ()
....
@end
@implementation A
- (id)customInitImplementedInA
{
... 
return self;
}

类 B 继承自类 A,并按以下方式使用此自定义初始化:

@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?
}

你应该能够通过super.methodname语法做到这一点。

class C: A {
init() {
super.customInitImplementedInA()
// Any extra initialization for C goes here.
}
}

如果你从 Obj-C 继承了你的 swift 类,那么你的 swift clas 将有 obj-c init((。 如果你需要调用它,你可以把它包含在你的 swift 初始化中。

class C: A {
var message: B?
init(message: B) {
super.customInitImplementedInA()
self.message = message
}
}

最新更新