Swift中的类初始化

时间:2015-04-13 20:09:07

标签: ios swift

当我创建两个类时:

class Example
{


}

class OtherExample
{
    init() {
        println("created")
    }
}

var instance = Example()
var otherInstance = OtherExample()

两者似乎都创建了可用的实例,所以如果你提供init方法,我想知道Swift的区别是什么,但是你初始化了吗? / p>

我确实认为它可能会自动调用超类init,但是由于这两个对象都没有从NSObject继承,所以他们没有超类吗?!

还需要在otherExample中对super.init()进行分类吗?

2 个答案:

答案 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()(因为它们没有任何超类来初始化/来自)