我有一个 Objective-C 类,这是它的 init()
:
- (id)init
{
self = [super initWithNibName:@"xxxViewController" bundle:nil];
if (self)
{
}
return self;
}
我有一个 Swift 类是它的子类。
如何覆盖 Swift 类中父类(super class)的 init
?我想将 initWithNibName
移动到 Swift 类中。
这是我尝试过的 Swift 类中的 init
:
init() {
super.init()
}
我得到错误:
Must call a designated intializer of the super class
最佳答案
由于 init()
不是指定的初始化器(在本例中,initWithNibName:bundle:
是),我们需要让编译器知道它实际上是一个指定的初始化器。我们可以通过在 header 中的声明中附加一个属性来做到这一点(在最后一个属性之后,但在分号之前):
@interface MyClass : Superclass
- (instancetype)init NS_DESIGNATED_INITIALIZER;
@end
关于objective-c - Swift 覆盖从 Objective-C 继承的类中的 init(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829098/