在子类的其他初始化将覆盖超类
问题描述:
我有一个类XYZObject
从ABCObject
继承了一些初始化和方法的初始化:在子类的其他初始化将覆盖超类
class XYZObject: ABCObject {
var name: String = ""
init(withName name: String){
self.name = name
}
}
class ABCObject{
internal var jsonstore: JSON
init(withJson newJson: JSON){
jsonstore = newJson
}
}
但是,每当我现在请XYZObject(withJson: jsonstuff)
斯威夫特给我的错误:Incorrect argument label in call (have 'withJson:', expected 'withName:')
我对swift和iOS开发相当新颖。我在这里错过了什么?
感谢您的帮助!
答
在Swift中,如果向类中添加新的初始化程序,则类不会继承其基类的初始化程序。
如果你想使init(withJson:)
在您所在XYZObject
类,你需要添加它:
override init(withJson newJson: JSON) {
super.init(withJson:newJson)
}
什么是'jsonstuff'? – NobodyNada
“JSON”类型的变量 – Matt