如何在Swift中调用deinit [英] How to call deinit in Swift
本文介绍了如何在Swift中调用deinit的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我写了一个代码块如下:
I wrote a code block as the following:
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
方法。
When initialized,print
is ok. When set person to nil
,the deinit
method is not called.
推荐答案
问题在于游乐场不是现实生活。这只是不使用它们的另一个原因(我认为它们在Apple方面是一个可怕的错误)。使用真实的iOS应用程序项目,将按预期调用 deinit
。
The problem is that a playground is not real life. This is just one more reason for not using them (I think they are a terrible mistake on Apple's part). Use a real iOS app project and deinit
will be called as expected.
来自真实项目的示例:
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;
}
}
这可以达到预期目的。
这篇关于如何在Swift中调用deinit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文