【发布时间】:2014-09-29 02:51:20
【问题描述】:
我写了如下代码块:
class Person{
let name:String;
init(name:String){
self.name = name;
println("\(name) is being initialized.");
}
deinit{
println("\(name) is being deInitialized.");
}
}
var person:Person?;
person = Person(name:"leo");
person = nil;
初始化时print就可以了。当设置person为nil时,不会调用deinit方法。
【问题讨论】:
-
最后 3 行的真正背景是什么?他们不能在现实生活中就那样坐以待毙……
-
嗯,这就是问题所在。
-
如果您在 Playground 中尝试此操作,那么我认为这就是它不起作用的原因。我刚刚实现了 Swift 书中的“银行”示例,并且在操场上没有调用
deinit方法,但是如果我将代码放入应用程序并运行它,它就是。 -
JFI:现在在操场上运行良好。