在 Apple 的 Swift 编程指南的“自动引用计数”部分中,在“解决闭包的强引用循环”中,提到了这个片段:
lazy var someClosure: () -> String = {
[unowned self, weak delegate = self.delegate!] in
// closure body goes here
}
作业“weak delegate = self.delegate!”中的感叹号有什么意义?
我的意思是,你为什么关心是否有价值?无论哪种方式,您都将在闭包体内收到一个可选委托,因为委托被声明为弱,它必须是可选的,并且您必须将其作为可选项访问。
另一方面,如果您确定“self.delegate”在您访问它时不会为 nil,为什么不将其声明为无主呢?
因此,为什么这里需要强制展开?有人可以对此有所了解吗?