Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift 4.1 – 子类UIImage大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在升级Swift 4.1后使用自定义init创建子类UIImage时,不支持覆盖扩展的非@ objc声明错误

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")
    }
}

谢谢你的帮助

解决方法

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)
}

此init方法在UIiamge类的扩展上进行了分解.

class Foo: UIImage {

}

extension Foo {
    convenience init(bar :string) {
        self.init()
    }
}

var temp = Foo(bar: "Hello")

你可以尝试以这种方式实现欲望的结果.

大佬总结

以上是大佬教程为你收集整理的Swift 4.1 – 子类UIImage全部内容,希望文章能够帮你解决Swift 4.1 – 子类UIImage所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。