Dan*_*son 6 uiimage swift swift4.1
我得到的Overriding non-@objc declarations from extensions is not supported错误,当升级到4.1雨燕后子类UIImage的自定义的init
class Foo: UIImage {
init(bar: String) { }
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// Overriding non-@objc declarations from extensions is not supported
required convenience init(imageLiteralResourceName name: String) {
fatalError("init(imageLiteralResourceName:) has not been implemented")
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
extension UIImage {
/// Creates an instance initialized with the given resource name.
///
/// Do not call this initializer directly. Instead, initialize a variable or
/// constant using an image literal.
required public convenience init(imageLiteralResourceName name: String)
}
Run Code Online (Sandbox Code Playgroud)
这个 init 方法是在UIImage类的扩展中声明的。
该错误几乎是说,如果在扩展中声明了一个函数,则不能以这种方式覆盖它
class Foo: UIImage {
}
extension Foo {
convenience init(bar :String) {
self.init()
}
}
var temp = Foo(bar: "Hello")
Run Code Online (Sandbox Code Playgroud)
您可以尝试以这种方式实现所需的结果。
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |