在我以为只是一个简单的子类的情况下,我似乎不太清楚这个问题。

此错误消息有意义吗?

'super.init' cannot be called outside of an initializer


swift - Swift 3初始化-意外错误-LMLPHP

或者,

swift - Swift 3初始化-意外错误-LMLPHP

SKPhoto被宣布为开放式,以下是超类的可用实例:

// MARK: - SKPhoto
open class SKPhoto: NSObject, SKPhotoProtocol {

    open var underlyingImage: UIImage!
    open var photoURL: String!
    open var contentMode: UIViewContentMode = .scaleAspectFill
    open var shouldCachePhotoURLImage: Bool = false
    open var caption: String!
    open var index: Int = 0

    override init() {
        super.init()
    }

    convenience init(image: UIImage) {
        self.init()
        underlyingImage = image
    }

    convenience init(url: String) {
        self.init()
        photoURL = url
    }

    convenience init(url: String, holder: UIImage?) {
        self.init()
        photoURL = url
        underlyingImage = holder
    }


我尴尬地不能解决这个问题!

最佳答案

SKPhoto类中似乎有一个问题。它没有打开其init方法,因此您不能在子类中覆盖它们;

https://github.com/suzuki-0000/SKPhotoBrowser/blob/swift3/SKPhotoBrowser/SKPhoto.swift

如果您确实要使用它,则应该分叉存储库并进行适当的更改,然后再使用它。

关于swift - Swift 3初始化-意外错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40366321/

10-10 20:31