[Swift] 메모리를 참조하는 방법 (Strong, Weak, Unowned)
- Autometic Reference Counting (ARC) 으로 불리운다.
- 프로그램에서 사용한 메모리를 추적해서 인스턴스가 사용한 메모리가 더 이상 필요 없는 경우 자동으로 해제한다. (자바의 갈비지 컬렉터와 비슷하다)
- 참조 타입의 속성에 대해 다른 인스턴스를 얼마나 많이 참조하는가를 카운트 해두었다가, 그 카운트가 0이되는 즉 더는 참조하는 인스턴스가 없다고 판단되는 경우에만 인스턴스를 해제한다.
1. 순환참조
1.1. 스트롱 참조 사이클 (Strong reference cycle)
- 두 개 이상의 클래스들이 서로를 참조하고 있어서 참조카운트가 0 이 되지 못하는 현상
철수 = nil
테슬라S = nil
///각 변수의 deinit이 호출되지 않음
1.2 위크 참조 (week reference)
- 위크 참조는 인스턴스를 속성값으로 저장해두지 않기 때문에 ARC가 동작하는데 문제가 없도록 한다.
- 위크 참조를 사용할때는
weak
키워드를 사용한다.