gpt4 book ai didi

objective-c - Swift 覆盖从 Objective-C 继承的类中的 init()

转载 作者:行者123 更新时间:2023-11-28 07:21:41 26 4
gpt4 key购买 nike

我有一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com