我们最近正在尝试将基于 swift 的版本升级到 4.2。不幸的是,在升级时发现了很多问题。我们目前无法解决的问题之一是:
在以下代码中遇到错误:
Overriding non-@objc declarations from extensions is not supported
extension MyHelpTableViewCell {
override class var nib: UINib {
return UINib(nibName: "MyHelpTableViewCell", bundle: nil)
}
有经验的请帮我解决一下。非常感谢。
更新: 如果我像这样添加了@objc 和 dynamic,
class MyHelpTableViewCell: WMHelpTableViewCell {
}
extension MyHelpTableViewCell {
@objc class dynamic var nib: UINib {
return UINib(nibName: "MyHelpTableViewCell", bundle: nil)
}
下面有同样的错误,
Overriding non-@objc declarations from extensions is not supported
最佳答案
错误很明显:
您必须将重写方法从扩展
移动到类
或者你必须在基类中用@objc
和@dynamic
标记声明
class BaseTableViewCell : UITableViewCell {
@objc class dynamic var identifier : String { return "something" }
}
关于swift - 覆盖在 swift 的扩展对象内部不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54106900/