如何在Swift中调用deinit

我写了一个代码块如下:

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是可以的。 当人设置nil ,不调用deinit方法。

问题是操场不是现实生活。 这只是另一个不使用它们的原因(我认为这对苹果来说是一个可怕的错误)。 使用一个真正的iOS应用程序项目和deinit将按预期方式调用。

来自实际项目的示例:

 class ViewController: UIViewController { class Person{ let name:String; init(name:String){ self.name = name; println("\(name) is being initialized."); } deinit{ println("\(name) is being deInitialized."); } } override func viewDidLoad() { super.viewDidLoad() var person:Person?; person = Person(name:"leo"); person = nil; } } 

这就是你所期望的。