Yes, there is an important difference. In the case of Apple docs, the alternative code you presented:
lazy var someClosure: () -> String = {
[unowned self] in
self.delegate?.doSomething()
}
delegate
self
.
Apple:
lazy var someClosure: () -> String = {
[unowned self, weak delegate = self.delegate!] in
delegate?.doSomething()
}
delegate
var delegate
self
, , . , self.delegate
, , Apple nil (, ) .
, , ([someIdentifier = someProperty]
) , , . , ([weak self]
) "", ({ self?.someProperty }
), , , .