메모리·ARC
클로저 캡처와 누수
다음 두 코드 중 순환 참조가 생기는 것은?
// (A)
final class VM {
var onChange: (() -> Void)?
func bind() { onChange = { self.reload() } }
}
// (B)
final class VC {
func load() { DispatchQueue.global().async { self.parse() } }
}하나만 선택
다음 두 코드 중 순환 참조가 생기는 것은?
// (A)
final class VM {
var onChange: (() -> Void)?
func bind() { onChange = { self.reload() } }
}
// (B)
final class VC {
func load() { DispatchQueue.global().async { self.parse() } }
}하나만 선택
메모리·ARC주관식기초
retain cycle이 생기는 구체적인 코드 예시를 하나 들고 고쳐 보세요.
#closure #weak-self #retain-cycle
메모리·ARC객관식기초
다음 중 (별도 조치가 없을 때) 순환 참조 또는 영구 누수가 생기는 경우를 모두 고르세요.
#closure #retain-cycle
메모리·ARC주관식심화
클로저가 외부 변수를 캡처할 때 실제로 메모리에서 무슨 일이 일어나나요? 캡처 리스트 [x]를 쓸 때와 안 쓸 때의 차이를 아래 코드 결과로 설명해 주세요. …
#closure #capture
메모리·ARC주관식심화
Swift Concurrency로 옮긴 뒤 팀에서 "Task { } 안에서도 [weak self]를 항상 써야 하나"로 논쟁이 붙었습니다. 언제 불필요하고…
#capture #weak-self