ios - Swift 如何避免在子类中覆盖 init?(编码器)

标签 ios swift

使用 Swift 的一个常见烦恼是子类必须实现 init?(coder),即使您不使用 Storyboard。

required init?(coder aDecoder: NSCoder) {
  fatalError("init(coder:) has not been implemented")
}

这并不优雅。如何避免在子类中覆盖它?

最佳答案

如果有基类,请在基类中重写它,并添加@available(*, unavailable)标志,这样其子类就可以避免重写该方法,并且该方法也从代码完成。

@available(*, unavailable)
required init?(coder aDecoder: NSCoder) {
  fatalError("init(coder:) has not been implemented")
}

关于ios - Swift 如何避免在子类中覆盖 init?(编码器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52043339/

相关文章:

ios - 如何在不关心大小的情况下制作斜体 UILabel?

ios - VIPER 的可重用 View /模块

ios - 注销并清除当前 VC 以下的 VC

ios - 如何将 Objective-C 中的这段代码翻译成 Swift

swift - 通过 Cosmicmind 访问 TextField 中的文本

iphone - xcode:如何在使用 AVFoundation 录制音频后保存音频文件

ios - MeasurementFormatter naturalScale 不显示厘米

ios - 如何检查 Objective-C 中的有效对象?

swift - 如何调用父类(super class) SKPhysicsBody 的指定初始化器?

快速 TableView 将 reloadData 更改为 insertRows