WWDC 2014 session 403 Intermediate Swift and transcript 에서 다음 슬라이드가있었습니다
이 경우 스피커는 사용하지 않으면 [unowned self]
메모리 누수가 발생 한다고 말했다 . 항상 [unowned self]
내부 폐쇄를 사용해야한다는 의미 입니까?
에 스위프트 날씨 응용 프로그램의 ViewController.swift 라인 (64) , I는 사용하지 마십시오 [unowned self]
. 하지만 일부 사용하여 UI를 업데이트 @IBOutlet
처럼들 self.temperature
하고 self.loadingIndicator
. @IBOutlet
내가 정의한 모든 것이이므로 괜찮을 수도 있습니다 weak
. 그러나 안전을 위해 항상 사용해야 [unowned self]
합니까?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}
onChange
해야 [weak self]
다른 개체를 얻고 폐쇄를 저장할 수 있도록 주위 TempNotifier 개체를 유지, 재산 (아직 내부적으로 만) 공개 이후, 폐쇄 (무기한 경우 사용 목적은 가자하지 않았다 onChange
가가보고 될 때까지 폐쇄 TempNotifier
받는 자신의 약한 심판을 통해, 사라 TempNotifier
) . 경우 var onChange …
였다 private var onChange …
다음 [unowned self]
올바른 것입니다. 나는 이것에 대해 100 % 확신하지 못한다. 내가 틀렸다면 누군가 나를 고쳐주세요.
[]
?를 사용 하여 빈 배열을 정의하는 것과 같습니다 . Apple 문서에서 설명을 찾을 수 없습니다.
{}
빈 클로저 (클로저 인스턴스)는 기본값 (아무것도하지 않음)이며 (Int) -> Void
클로저 정의입니다.