【发布时间】:2023-03-08 01:59:01
【问题描述】:
我的超类目前有这个初始化方法:
- (id)initWithFoo:(int)foo;
在一个子类中,我有一个自定义的 init 方法,它调用它的超类的 init,就像这样。 Bar 是子类独有的。
-(id)initWithFoo:(int)foo Bar:(int)bar {
if (self = [super initWithFoo:foo]){
_bar = bar;
}
return self;
}
我在创建子类的实例时遇到了问题,因为编译器很乐意在我的子类实例的可能初始化方法列表中建议超类 init 方法,这是我绝对不想要的。
但是,如果我从超类的 .h 文件中删除 initWithFoo:(int)foo ,那么子类就不能再在它们自己的 init 方法中使用它。
有没有办法解决这个问题?
【问题讨论】:
-
Related issue(虽然不一样)
标签: ios objective-c inheritance