ARC(1)

ARC(2)-강한 순환 참조

강한 순환 참조

<aside> *️⃣ 두 개 이상의 관계에서도 가능

</aside>

<aside> *️⃣ 서로 소유(=사용)하므로 해제되지 않음

</aside>

<aside> *️⃣

수동으로 해제시켜줘야 함

</aside>

<aside> *️⃣ 가장 큰 문제점은 바로 메모리 누수

</aside>

코드로 살펴보자

class Car {
	var engine: Engine?
}
class Engine {
	var car: Car?
}

Car라는 객체가 Engine이라는 객체를 소유하고 있고

Engine에 있는 car라는 프로퍼티를 통해서 Car 객체를 소유하고 있음

→ 서로 상호 소유의 관계

⇒ 이 관계에서 바로 강한 순환 참조가 발생