/**
14.4-weak引用.mp4
*/
/**
(4)weak引用(弱引用)
*/
class Ref {
deinit {
print("Ref deinit!")
}
func test() -> Void {
print("test")
}
}
/**
跟弱引用对应的就是强引用。
*/
var strongRef = Ref.init() // 引用计数retainCount 1
var strongRef1 = strongRef // 引用计数retainCount 2
// 这就是弱引用,weak引用是非常安全的引用方式
weak var weakRef = Ref.init()
// 后面会自动置nil
// 弱引用,是一个可选类型。
weak var weakRef1: Ref? = Ref.init()
// 不建议这样子直接解包
// fatal error: unexpectedly found nil while unwrapping an Optional value
// weakRef1!.test()
// 访问可选类型的时候用隐式解包,
if let wr = weakRef1 {
// wr存在,才用它
wr.test()
}
/**
我可以告诉大家的是,在Swift中我们平时用不着 weak关键字。
但是在某些场合下我们会使用它,会在接下来的课程讲解。
*/
原文链接:https://www.f2er.com/swift/322365.html