在Objective-C中,琐碎的任务会发生什么?
- (instancetype)initWithTitle:(NSString *)title {
return [super initWithTitle:title];
//bool but_it_works_in_objective_c;
}
引起短路错误并提出建议: 只有在返回时允许的零值>>可用的初始化程序'init(title :)'不能覆盖不可用的初始化程序>>返回时只允许零值
Screenshots with compiler errors from Xcode 9.3 (Swift 4.1)
很长时间从 id 过渡到返回的 instancetype 似乎只是为了区分init
系列初始化程序中缺少返回的想法。
那么为什么这么明显的暗示无法让自动修正呢?
答案 0 :(得分:1)
在Swift中,(不可用)init
方法不返回任何内容,您不得更改指定初始化程序的签名
class MyMenu : NSMenu {
override init(title: String) {
super.init(title: title)
}
required init(coder decoder: NSCoder) {
super.init(coder: decoder)
}
}