Arc(2)
-
💽 메모리 참조 (weak, strong, unowned)
weak var는 무슨 뜻일까? Strong 객체를 참조하고 reference count를 증가 var ref: Person? = Person(name: "Colli") // 강한 참조 ref = nil // 메모리 해제 과정 - 강한 참조를 하게 되면 reference count가 증가함 -> 해당 객체에 nil을 넣어야 메모리가 해제 ! 강한 순환 참조(Strong Reference Cycles) : 두 개의 객체가 상호 참조하는 경우, 강한 순환 참조 발생 가능 -> reference count가 0이 되지 못해, 메모리 누수 발생 -> 뭔가 객프 시간에 cpp하면서 배웠던 거랑 유사하다. 메모리 누수! //자기 자신의 객체를 가지는 클래스 class Strong { var strong: Stron..
2022.06.24 -
📍ARC (Automatic Reference Counting) : 자동 참조 계산
ARC (Automatic Reference Counting) : Objective-C / Swift에 대한 자동 참조 계산을 제공하는 메모리 관리 기능 - 컴파일 시 코드를 분석하여 자동으로 retain, release를 적절한 위치에 삽입 - Objective-C 에서는 수동으로 reference count 증감을 통해 객체 유지 및 메모리 관리 -> 수동으로 작성되던 메모리 관리를 자동으로 작성해준다. 메모리 관리는 Data, Heap, Stack, Code 이렇게 4가지 가상 메모리 영역 중 힙 영역과 관련있음 - Heap 은 class, closure 등의 참조형(reference) 자료 들이 머무는 공간 + 개발자가 동적으로 할당하는 메모리 공간 -> 메모리 관리 필요 Heap 영역에 참조형 ..
2022.06.24