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 }), , , .