순환참조
-
[iOS] Block을 사용할 때 주의해야할 점 : 순환참조(RetainCycle)로 인한 Memory Leak앱등이에게 살충제를 뿌린다./iOS 2016. 1. 17. 19:28
Block은 캡쳐링을 통해 Context의 걊을 전달하는 기능을 갖고 있습니다. 캡쳐링이 가능하기 때문에 장점을 가지기도 하지만 구멍또한 존재합니다. 1. 문제 발생 예제를 통해서 보겠습니다. 1. ViewController 객체 내부에서 model이란 객체를 strong으로 갖고 있구요. 2. model에서 ViewController를 참조하게 되는 블락을 전달하려고 합니다. Capturing 'self' strongly in this block is likely to lead to a retain cycle. : block에서 self를 강하게 참조하고 있기 때문에 순환참조 발생 가능성이 있습니다.라고 하고있네요. 네. model 객체에서 viewcontroller객체를 강하게 참조하고 있고 view..