스위프트 ARC2 ARC 2편 - 강한 참조 순환 클래스 인스턴스간 강한 참조 순환 (Strong Reference Cycles Between Class Instances) 클래스의 인스턴스 간 강하게 상호 참조를 하고 있는 경우에는 ARC에서 자동으로 메모리 해제를 못하는 경우도 있다. Person 클래스와 Apartment 클래스가 있다. Person 클래스 내의 apartment 저장 프로퍼티 경우는 Apartment 클래스 타입을 따르고 있고, Apartment 클래스 내의 tenant 저장 프로퍼티 경우는 Person 클래스 타입을 따르고 있다. class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { print.. 2024. 4. 19. ARC 1편 - ARC 란? ⭐ 참조타입은 메모리 해제가 중요한 문제이다. 왜냐하면? 인스턴스가 적절한 시점에 메모리에서 해제되지 않으면 메모리 자원 낭비 + 성능 저하로 이어지기 때문이다. 이를 해결하고자 스위프트에서는 메모리 관리 기법인 ARC를 사용한다. ✔ RC: Reference Counting 으로 참조 횟수 계산을 뜻한다. (구조체, 열거형은 값 타입으로 적용이 안된다.) ARC 사용 Person 클래스를 선언하고, init(), deinit을 통해 인스턴스 생성과 해제에 따른 print()문을 실행한다. class Person { let name: String init(name: String) { self.name = name print("\(name) is being initialized") } deinit { pr.. 2024. 4. 19. 이전 1 다음