弱
弱引用修饰符:不持有对象,目标释放后自动变 空。
xuantie
型 子节点 {
弱 设 父: 父节点?
}你可以……
- 打破循环引用——父强引用子、子弱引用父,ARC 不再互相锁死:
xuantie
型 父节点 {
设 子列表: 数组<子节点>
}
型 子节点 {
弱 设 父: 父节点?
}- 声明局部弱引用变量——
弱 设,对象释放后自动归零:
xuantie
设 强引用 = "数据"
弱 设 观察者 = 强引用
强引用 = "新对象" // 唯一强引用被覆盖
示("观察者: #{观察者}") // 空- 在构造里给弱引用字段赋值——不增加引用计数:
xuantie
型 子节点 {
弱 设 父: 父节点?
函 造(p) { 此.父 = p }
}注意
- 弱引用字段的类型应带
?(可空),否则编译器给出 W005 警告(严格模式升级为错误)。 - 弱引用指向的对象随时可能释放变
空,使用前需判空。 - 闭包弱捕获
函() [弱 此] { ... }尚未实现。