例如,我有一个简单的UIImage子类,它有一些额外的属性:
class Image: UIImage {
var poeticDescription: String?
}
我想要的是这样的:
init(with: UIImage) { /* something to do here */ }
答案 0 :(得分:0)
如果源对象是超类对象,则无法再次初始化现有对象。当然,您可以使用超类对象作为参数调用初始化程序,但这将创建一个全新的对象。
init(with superclassObject: SuperClass) {
// Do some stuff with superclass object
}
继承的常用方法是在继承的初始化程序中调用超类初始值设定项:
init() {
super.init()
}
但是,在这种情况下,你不能再使用已经存在的超类对象来重新初始化它。
也许你可以解释一下,你想要实现的目标。然后我们可以帮助您找到正确的方法。
答案 1 :(得分:0)
我认为你想要实现的是拥有一个带有自定义属性的UIImage
子类。您必须使用源图像的数据调用超级初始化程序。对于UIImage
子类化很棘手,请查看this answer示例。