的夫特編程語言導具有以下示例:對象不釋放
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