}
class submodule {
let number: Int
init(number: Int) { self.number = number }
weak var topic: module?
deinit { println("Sub Module with its topic number is (number)") }
}
var toc: module?
var list: submodule?
toc = module(name: "ARC")
list = submodule(number: 4)
toc!.sub = list
list!.topic = toc
toc = nil
list = nil
当我们使用 playground 运行上面的程序,得到以下结果。
ARC Is The Main Module
Sub Module with its topic number is 4
无主参考程序
复制代码class student {
let name: String
var section: marks?
init(name: String) {
self.name = name
}
deinit { println("(name)") }
}
class marks {
let marks: Int
unowned let stname: student
init(marks: Int, stname: student) {
self.marks = marks
self.stname = stname
}
deinit { println("Marks Obtained by the student is (marks)") }
}
var module: student?
module = student(name: "ARC")
module!.section = marks(marks: 98, stname: module!)
module = nil
当我们使用 playground 运行上面的程序,得到以下结果。
ARC
Marks Obtained by the student is 98
闭包强引用周期
当我们分配一个闭包至类实例属性,闭包的主体以捕获特定实例强参考周期发生。强引用闭合由 self.someProperty 或 self.someMethod()定义。强引用周期用作闭包引用类型。
class HTMLElement {
let samplename: String
let text: String?








