본문 바로가기

ARC2

[Swift] weak/unowned self는 언제 사용해야 할까? ARC에서 발생할 수 있는 Strong Reference Cycle로 인한 메모리 누수를 방지하기 위해 weak self 또는unowned self 를 사용하게 됩니다. 주로 클로저에서 weak self를 사용하고는 하는데 모든 클로저에 weak self를 사용해야 하는지, 그렇지 않다면 어떤 부분에 weak self를 사용해야 하는지 알아보고자 찾아본 내용을 정리하고자 글을 쓰게 되었습니다. Escaping, non escaping closure 여부 일반적으로 @escaping 키워드가 붙지 않은 클로저의 경우, 클로저의 scope 내에서 즉시 실행됩니다. 따라서 weak이나 unowned 를 사용할 필요가 없다고 하네요. 그러나 escaping closure의 경우 weak이나 unowned를 사용.. 2022. 2. 14.
[Swift] 메모리 참조, ARC, Strong Reference Cycle 이해하기 이번 글에서는 Swift 언어에서 메모리를 관리하는 방식인 ARC에 대해 알아보고, 메모리 관리 시 주의해야 할 메모리 누수를 피하는 방법에 대해 자세히 알아보도록 하겠습니다. -1. (일반론) Reference Counting - 메모리를 관리하는 방법 -2. ARC (Automatic Reference Counting) - Swift의 메모리 관리방법 -3. ARC에서 주의해야 할 메모리 누수문제 - Strong Reference Cycle -4. Strong Reference Cycle 문제를 예방하려면? 1. (일반론) Reference Counting - 메모리를 관리하는 방법 메모리는 한정적이므로 필요한 객체는 메모리에 올리고, 더 이상 사용하지 않는 객체는 메모리에서 해제하는 등의 메모리 관.. 2021. 9. 1.