当我创建两个类时:
class Example
{
}
class OtherExample
{
init() {
println("created")
}
}
var instance = Example()
var otherInstance = OtherExample()
两者似乎都创建了可用的实例,所以如果你不提供init方法,我想知道Swift的区别是什么,但是你初始化了吗? / p>
我确实认为它可能会自动调用超类init,但是由于这两个对象都没有从NSObject继承,所以他们没有超类吗?!
还需要在otherExample中对super.init()
进行分类吗?
答案 0 :(得分:4)
如果您的类继承自另一个类,则只需要super.init()
。
class Example {
func sayHi() {
println("hi")
}
}
class OtherExample: Example {
override init() {
super.init()
println("created")
}
}
var instance = Example()
instance.sayHi()
var otherInstance = OtherExample()
otherInstance.sayHi()
答案 1 :(得分:2)
class example{
var example:Int = 0
}
class anotherExample{
init(example:Int){
self.example = example
}
var example:Int
}
example()
anotherExample(0)
如果没有任何初始值设定项,您可以在类中使用初始化程序初始化变量,而不需要在类中设置值
两者都可以更改其示例值,但只有anotherExample
才能设置值
在我的测试游乐场中,我无法在类中使用super.init()(因为它们没有任何超类来初始化/来自)