【发布时间】:2022-01-20 15:30:06
【问题描述】:
我有以下代码:
class Problem{
init(){
print("Problem init");
}
deinit{
print("Problem deinit");
}
}
var list = Problem();
输出:
问题初始化
以下导致程序调用deinit:
class Problem{
init(){
print("Problem init");
}
deinit{
print("Problem deinit");
}
}
do {
var list = Problem();
}
问题:
- 为什么没有第一次调用
deinit? - 有没有办法保证
deinit在我无法控制其编写方式的代码(即用户代码)中始终被调用Problem?
P.S.我知道,作为一个刚接触 Swift 的程序员,我很可能忽略了一个明显的原因。
【问题讨论】:
标签: swift memory-management memory-leaks destructor