[iOS] Strong, Weak, Unowned 정리

HL·2022년 5월 4일
0

iOS

목록 보기
10/22

ARC

  • 인스턴스가 다른 인스턴스의 프로퍼티/변수/상수에 할당될 때 RC(Reference Count)값이 1 증가됨(retain)

  • 해당 프로퍼티/변수/상수에 nil을 할당하면 RC값이 1 감소(release)

  • RC가 0이 되면 인스턴스가 메모리에서 해제됨(deinit)

Strong

  • 강한 참조
  • 디폴트
  • 참조할때 retain >> count+=1
  • 종료시 release >> count-= 1
  • count==0 일 떄 메모리 해제
  • 순환 참조 위험

Weak

  • 약한 참조
  • retain, release 없음
  • 메모리 해제시 자동으로 nil로 만들어줌
  • 객체가 옵셔널이어야 함

Unowned

  • 미소유, 약한 참조
  • 자동으로 nil 안돼서 또 참조하려하면 오류남 >> 사라지지 않는 객체에
  • 옵셔널이면 안 됨

순환 참조

  • 서로서로 참조함 >> count 계속 올라감 >> 메모리 해제 안 됨
  • delegate 패턴 사용시 발생 가능 >> weak로 해결!
profile
Frontend 개발자입니다.

0개의 댓글