적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

강한 순환 참조 2

프로토콜 사용시 주의해야 할 강한 순환 참조 문제

‘weak' must not be applied to non-class-bound 'any …Delegate'; consider adding a protocol conformance that has a class bound 이러한 에러가 떴다. 클래스 인스턴스 간에 강한 순환 참조가 발생하는 경우가 있는데 흔히 Delegate 패턴을 사용할 때 이런 문제가 발생할 수 있다. * Retain Cycle (= Strong Reference Cycle) : 두 클래스 인스턴스가 서로 참조를 유지하면서 메모리에서 해제되지 않아 메모리 누수가 생기는 현상 그래서 UITableViewDelegate도 다음과 같이 weak var로 정의되어 있음. weak var delegate: UITableViewDelegate..

[Swift ARC] Strong Reference Cycles 강한 순환 참조

ARC가 참조 횟수를 추적하며 자동으로 메모리 관리를 해주지만, 강한 참조 횟수가 절대 0이 되지 않는 문제가 발생할 수도 있는데 이런 경우를 강한 순환 참조(strong reference cycle)라고 한다. 강한 순환 참조 문제는 두 클래스 인스턴스가 서로를 강한 참조하고 있을 때, 그리고 클로저에서 발생할 수 있다. 이는 강한 참조 대신 weak 이나 unowned references 를 사용하여 해결할 수 있다. Strong Reference Cycles 강한 순환 참조 ARC가 참조 횟수를 추적하며 더 이상 참조하는 곳이 없으면 자동으로 메모리 해제를 해주지만, 강한 참조 횟수가 0이 되지 않아 메모리에서 해제되지 않고 계속 남아있는 경우를 강한 순환 참조라고 한다. -> memory leak..

728x90
반응형