순환 참조를 방지하기 위해 모든 경우에 약한 참조를 해도 될까?
순환 참조를 방지하기 위해 모든 경우에 약한 참조를 해도 될까?
결론 : 그렇게 하면 안된다.
이유
- 약한 참조일 경우 객체가 필요한 시점에 이미 메모리에서 해제되기 때문에 nil참조를 하게 되고 오류가 발생함.
- 강한 참조는 객체의 수명을 제어하기 때문에 강한 참조가 필요함.
- 순환 참조가 발생할 경우에만 약한 참조 실행.
This post is licensed under CC BY 4.0 by the author.