iOS 캠프 TIL - 2020.11.20 금

Updated:

구조체와 클래스의 차이

  • 구조체는 값타입, 클래스는 참조 타입
  • 구조체는 상속할 수 없음
  • 타입 캐스팅은 클래스의 인스턴스에만 허용됨
  • 디이니셜라이저는 클래스의 인스턴스에만 가능
  • Reference Counting은 클래스의 인스턴스에만 적용

구조체 vs 클래스 선택

애플 가이드라인에서는 아래 조건 중 하나 이상 해당되면 구조체 사용 권장

  • 연관된 간단한 값의 집합을 캡술화 하는 것만이 목적일 때
  • 캡슐화된 값이 참조되는 것보다 복사되는 것이 합당할 때
  • 구조체에 저장된 프로퍼티가 값 타입이며 참조되는 것보다 복사되는 것이 합당할 때
  • 다른 타입으로부터 상속받거나 자신이 상속될 필요가 없을 때

Leave a comment