【发布时间】:2014-08-13 08:14:26
【问题描述】:
在接下来的代码中,我尝试调用 deinit 方法,释放对 Person Class 实例 Mark 的所有引用,但从未调用 deinit。为什么?
class Person{
let name:String
init(name:String){
self.name = name
println("Person created")
}
deinit {
println("Person \(name) deinit")
}
}
var Mark:Person? = Person(name:"Mark")
Mark = nil // Shouldn't the person deinit method be called here? It doesn't.
【问题讨论】:
-
deinit 正在调用相同的代码。
-
这可能是 Playgrounds 的问题,我离开了 Playgrounds 测试以获得更稳定的 Xcode 版本。你可以检查一下代码,
deinit被正确调用了。 -
无法在操场上测试 ARC!
-
在 XCode 10 中调用 deinit !
标签: swift memory-management swift-playground