Swift 3 init - 意外错误

时间:2016-11-01 18:27:35

标签: swift oop swift3 xcode8

在我认为是一个简单的子类中,我似乎无法弄清楚这个问题。

此错误消息是否有意义?

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

enter image description here

可替换地,

enter image description here

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
    }

我尴尬地无法解决这个问题!

1 个答案:

答案 0 :(得分:0)

SKPhoto课程中似乎存在问题;它没有打开它的init方法,因此你不能在子类中覆盖它们;

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

如果你真的想使用它,你应该分叉回购并进行适当的更改,然后可以使用它。