오늘 한 일
Q: @JK 질문이 있습니다.
특정 메소드의 탈출 클로저가 self 를 캡처하는 경우, 무조건 캡처리스트로 weak하게 캡처해야 할까요?
특정 메소드의 객체가 해당 탈출 클로저를 프로퍼티로 저장하지 않는걸 안다면 weak 하게 캡처안해도 되는 건지 궁금합니다.
A: 순환 참조가 일어나지 않고 참조가 투명한(?) 클로저라면 weak로 캡처하지 않아도 무난합니다.
다만 메소드를 호출하거나 해도 그 내부에서 또 다른걸 참조할 수도 있으니까 습관적으로 weak self를 처리하는 것도 나쁘지 않습니다.
명확하게 관리할꺼냐 습관으로 관리할 꺼냐 정도로 생각해보세요.
Q: 메소드 내부에서 다른 것이 그 클로저를 참조할수도 있다는 것을 말씀하시는거죠??
A: 이제 봤네요. 그 클로저를 참조할수도 있지만 클로저가 아니라 소유한 객체를 참조할 수도 있다는거죠.
VC <- 클로저 <- 메소드 <- VC 이런 순환 고리가 생길 수 있다는 의미입니다.
=> 후.. 여러가지 실험을 다시 해보자.