본문 바로가기

메모리 관리2

[iOS/Swift] weak self를 활용한 메모리 누수 관리 예제 살펴보기 @escaping Closure의 정의와 기능, 메모리 누수(Memory leak)까지 앞선 포스팅을 통해 살펴보았습니다. 그렇다면 실제 프로젝트에서는 어떤 방식으로 위와 같은 개념을 다루게 되며, 참조 타입인 weak을 통해 메모리 누수를 해결하는지 살펴보도록 하겠습니다. weak self는 어떤 경우에 사용하나요? 지연 할당으로 인해 순환 참조로 인한 메모리 누수가 발생될 가능성이 있는 경우 프로젝트를 진행하는 과정에서 활용되는 API Parsing 이나 Timer 와 같이 @escaping Closure를 통한 지연 할당, 즉 어떠한 동작 이후에 실시되는 행위를 구현하고자 할 경우 반드시 특정 객체에 대한 Reference, 참조가 발생하게 됩니다. 만약, 두 개 이상의 객체가 강한 참조(Stron.. 2023. 9. 30.
[CS/Basic] 예시 코드와 함께 살펴보는 ARC 메모리 관리 과정 지난 포스팅에 이어.. 편리하고 유용한 메모리 관리 모델인 ARC(Automatic Reference Counting)의 작동 과정을 예시코드와 함께 알아보도록 하겠습니다. ARC의 이해를 위한 예시 코드 ARC는 Reference Count의 증가와 감소를 통해 메모리를 관리, 해제하는 모델 ARC의 작동 과정을 살펴보기 위해, 아래와 같은 예시 코드를 활용하도록 하겠습니다. Animals란 클래스가 있습니다. 이름(name) 프로퍼티를 담고 있습니다. 또한, RC의 증가와 감소, 해제를 확인하기 위해 init 및 deinit 메서드를 포함합니다. class Animals { var name: String init(name: String) { self.name = name print("\(name)이 .. 2023. 3. 17.