본문 바로가기

순환참조2

[iOS/Swift] weak self를 활용한 메모리 누수 관리 예제 살펴보기 @escaping Closure의 정의와 기능, 메모리 누수(Memory leak)까지 앞선 포스팅을 통해 살펴보았습니다. 그렇다면 실제 프로젝트에서는 어떤 방식으로 위와 같은 개념을 다루게 되며, 참조 타입인 weak을 통해 메모리 누수를 해결하는지 살펴보도록 하겠습니다. weak self는 어떤 경우에 사용하나요? 지연 할당으로 인해 순환 참조로 인한 메모리 누수가 발생될 가능성이 있는 경우 프로젝트를 진행하는 과정에서 활용되는 API Parsing 이나 Timer 와 같이 @escaping Closure를 통한 지연 할당, 즉 어떠한 동작 이후에 실시되는 행위를 구현하고자 할 경우 반드시 특정 객체에 대한 Reference, 참조가 발생하게 됩니다. 만약, 두 개 이상의 객체가 강한 참조(Stron.. 2023. 9. 30.
[iOS/Swift] 메모리 누수가 발생하는 원인과 해결방안(Strong, weak, unowned) 지난 포스팅에서 예고한 [메모리 누수]에 대한 내용을 다뤄볼까 합니다. 다만, 이번 포스팅에서는 탈출 클로저가 아닌 일반적인 예시 코드를 통해 정상적인 ARC 작동과정 메모리 누수 발생 (Memory leak) 해결 방법 위 3가지 순서로 미처 다루지 못한 메모리 누수의 원인과 해결과정을 살펴볼 예정입니다. 메모리 누수(Memory leak)와 3가지 참조유형 순환 참조(Retain Cycle)로 인하여 Reference Count가 0으로 수렴하지 않아 발생하는 문제 본론으로 들어가기에 앞서, 메모리 누수(Memory leak)에 대해 살펴볼까요? 그 전에, CS 내용 중, ARC 동작 방식에 대한 사전지식이 필요하겠지요. 메모리 누수(Memory leak)란? 둘 이상의 객체간의 강한 상호참조 관계인.. 2023. 7. 19.