Class VS Struct (Swift)

유재우·2023년 1월 31일
0

iOS Developer의 길!

목록 보기
6/15

공통점

  • 값을 저장할 프로퍼티를 선언할 수 있다.
  • 함수적 기능을 하는 메서드를 선언할 수 있다.
  • 내부 프로퍼티에 .을 사용하여 접근할 수 있다.
  • 생성자(init)을 사용하여 초기상태를 설정할 수 있다.
  • extension을 사용하여 기능을 확장할 수 있다.
  • Protocol을 채택하여 기능을 설정할 수 있다.

Class의 특징

  • 참조타입(Reference Type)이다.
  • ARC로 메모리 관리를 한다.
  • 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤에 값을 변경하면 할당한 모든 변수에 영향을 준다.
    (참조타입)
  • 상속이 가능하다.
  • 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있다.
  • deinit을 사용하여 클래스 인스턴스의 메모리 할당울 해제할 수 있다.

Struct의 특징

  • 값 타입(Value Type)이다.
  • 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당된다.
  • 같은 구조체를 여러 개의 변수에 할당한 뒤 값을 변경하여도 다른 변수에 영향을 주지 않는다.
    (값 자체를 복사)

한마디로 정리 하자면

Class는 참조타입이며 ARC로 메모리 관리를 하고, Struct는 값 타입이다

라고 한 문장으로 정리 할 수 있다.

참고한 블로그 링크

profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글