본문 바로가기

iOS

[iOS] weak self 란? - 메모리 관리

안녕하세요! 꾸준히 노력하는 iOS 개발자 Dave입니다.

오늘 알아볼 주제는 weak self 입니다!
메모리 관리를 하기 위해서는 weak self를 알아야합니다!!!

weak self

closure 내부에서 self를 사용하는 경우 참조 카운트가 증가하게 된다.
closure가 종료되면서 self를 해제해야하는데 그것이 쉽지 않다.
그래서 [weak self]를 사용하여 강한 참조 사이클이 발생하지 않도록 예방을 하는 것이다.

class a {
  var b = 0

  c = d.closure { [weak self] number in
     self?.b += number
  }
}

위 코드처럼 [weak self]를 사용하여 self로 인한 참조 카운트 증가를 막아 메모리 누수를 방지할 수 있다.

되도록이면 self를 사용하는 모든 closure에 [weak self]를 사용하는 것이 좋습니다.

궁금하신 점은 댓글에 남겨주세요!!!!