的夫特编程语言导具有以下示例:对象不释放
class HTMLElement {
let name: String
let text: String?
@lazy var asHTML:() -> String = {
[unowned self] in
if let text = self.text {
return "<\(self.name)>\(text)</\(self.name)>"
} else {
return "<\(self.name) />"
}
}
init(name: String, text: String? = nil) {
self.name = name
self.text = text
}
deinit {
println("\(name) is being deinitialized")
}
}
var paragraph:HTMLElement? = HTMLElement(name: "p", text: "hello, world")
println("\(paragraph!.asHTML())")
paragraph = nil
据预计在DEINIT()方法来打印出字符串,但它没有印刷任何东西。这对我来说意味着对象仍然存在,并且与关闭有很强的参照周期。有没有人得到同样的问题?
这样做,如果这是在一个操场上,熊的操场环境似乎让阿霍德变量(大概是打印出来和其他调试。)尝试实际项目中的相同代码,并查看是否获得预期结果。 –
谢谢。我在main.swift文件 – LongNV