使用Apple的Swift编程指南我在ARC的解释中遇到了这个例子;更改类中常量的值
class Person {
let name: String
init(name: String) {
self.name = name
println("\(name) is being initialized")
}
deinit {
println("\(name) is being deinitialized")
}
}
var reference1: Person?
var reference2: Person?
var reference3: Person?
我理解的想法,因为变量是选项类型它们与零值初始化,并没有引用Person实例。所以以下对我来说很有意义。
reference1 = Person(name: "John Appleseed")
但是我在做实验,很惊讶地看到我也可以这样做;
reference1 = Person(name: "Johnny Appleseed")
我期待代码错误,因为我试图改变常量“名称”属性。我不仅可以更改此属性,还可以收到“Johnny Appleseed正在初始化”的消息。我怎样才能初始化一个常量两次?