Swift必须调用超类uiinputviewcontroller的指定初始值设定项

今天早上升级到8.3后,我在主题中收到错误。

下面的代码用于完美地工作,但它不再编译。 你们有人可以帮助我吗?

protocol CustomAccessoryProtocol { func controlButtonPressed(tag:Int) } class CustomAccessory : UIInputViewController { var accessoryView : UIView! var delegate : CustomAccessoryProtocol! @IBOutlet weak var returnButton: UIButton! @IBOutlet weak var backButton: UIButton! @IBOutlet weak var forwardButton: UIButton! init(delegate: CustomAccessoryProtocol){ super.init() self.delegate = delegate } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) fatalError("init(coder:) has not been implemented") } override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) let customNib = UINib(nibName: "CustomAccessory", bundle: nil) accessoryView = customNib.instantiateWithOwner(self, options: nil)[0] as! UIView } @IBAction func buttonPress(sender: AnyObject) { delegate.controlButtonPressed(sender.tag!) } override func viewDidLoad() { super.viewDidLoad() view.addSubview(accessoryView) } } 

我在NSWindowController的代码中遇到了同样的问题:

 init() { super.init() } 

我改成了:

 convenience init() { self.init() } 

我认为Apple比以前更严格地执行便利性。