Trong WWDC 2014 phiên 403 Trung cấp Swift và bảng điểm , có slide sau

Người nói đã nói trong trường hợp đó, nếu chúng ta không sử dụng [unowned self]ở đó, nó sẽ bị rò rỉ bộ nhớ. Có nghĩa là chúng ta nên luôn luôn sử dụng [unowned self]bên trong đóng cửa?
Trên dòng 64 của ViewControll.swift của ứng dụng Swift Weather , tôi không sử dụng [unowned self]. Nhưng tôi cập nhật giao diện người dùng bằng cách sử dụng một số @IBOutlets self.temperaturevà self.loadingIndicator. Nó có thể ổn vì tất cả những @IBOutletgì tôi xác định là weak. Nhưng để an toàn, chúng ta có nên luôn luôn sử dụng [unowned self]?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}
onChangenên là một [weak self]đóng cửa, vì đó là một thuộc tính công khai (bên trong, nhưng vẫn), do đó, một đối tượng khác có thể lấy và lưu trữ bao đóng, giữ đối tượng TempNotifier xung quanh (vô thời hạn nếu đối tượng sử dụng đã không buông bỏ việc onChangeđóng cửa cho đến khi nó thấy nó TempNotifierbiến mất, thông qua tham chiếu yếu của chính nó đối với TempNotifier) . Nếu var onChange …được private var onChange …thì [unowned self]sẽ đúng. Tôi không chắc chắn 100% về điều này mặc dù; Ai đó làm ơn sửa cho tôi nếu tôi sai.
[]? Tôi không thể tìm thấy lời giải thích trong các tài liệu của Apple.
{}là bao đóng rỗng (ví dụ của bao đóng) là mặc định (không làm gì cả), (Int) -> Voidlà định nghĩa đóng.
