weak self 2

[Swift] weak self, 어떻게 사용해야할까? (2/2)

[Swift] weak self, 어떻게 사용해야할까? (2/2) [Swift] weak self, 어떻게 사용해야할까? [Swift] weak self, 어떻게 사용해야할까? 클로저를 매개변수로 받아 메소드를 작성하는 경우, 혹은 URLSession 이나 DispatchQueue 를 이용할 때, 클로저 내부에서 클로저 외부의 프로퍼티나 메소드를 사용 trumanfromkorea.tistory.com 앞선 글에 이어서 마저 작성해보도록 하겠습니다. GCD GCD 호출은 나중에 실행하기 위해 어딘가에 저장하지 않는 한 순환참조가 발생할 위험이 없습니다. 다음 코드와 같이 작업이 바로바로 수행되는 경우에는 [weak self] 를 사용하지 않더라도 메모리 누수가 발생하지 않을 것입니다. func nonLea..

iOS 개발/Swift 2022.10.23

[Swift] weak self, 어떻게 사용해야할까? (1/2)

[Swift] weak self, 어떻게 사용해야할까? (1/2) 클로저를 매개변수로 받아 메소드를 작성하는 경우, 혹은 URLSession 이나 DispatchQueue 를 이용할 때, 클로저 내부에서 클로저 외부의 프로퍼티나 메소드를 사용하는 경우 self 를 사용해야 한다는 경고창을 한 번쯤은 보신적이 있으실겁니다. 저는 위와 같은 상황을 겪을때마다 별 생각 없이 self 를 앞에 붙여주었습니다. 시간이 지나 self 는 해당 클로저를 품고있는 객체를 강하게 참조한다는 것을 알게 되었고, [weak self] 를 이용하다는 것이 안전하다고 하기에 그렇게 사용하고 있었습니다. 하지만 이런 경우 self 가 약하게 참조되기 때문에 옵셔널 체이닝을 해주거나, guard let 구문을 이용하여 바인딩 해줘..

iOS 개발/Swift 2022.10.23