구조체와 클래스 차이

BINGBING🐨·2022년 5월 23일

iOS CS

목록 보기
1/6

공통점

  • 프로퍼티 정의 가능
  • 메소드 정의 가능
  • extension 가능
  • protocol 가능

차이점

구조체:Value Type / Stack에 메모리 할당
(struct, enum, tuple) Swift의 기본 자료형 타입은 모두 struct 형태로 구현되어있다.
-> Copying할때 data의 복사본 생성
-> 다른 부분에서 데이터를 변경하지 못함

  • 상속 불가능
  • AnyObject로 타입캐스팅 불가능
  • 생성자를 구현하지 않을 시 기본 이니셜라이저 사용할 수 있음

클래스: Reference Type / heap에 메모리 할당
(class, function, closure)

  • shared instace사용, 두번째 변수에 할당된 인스턴스의 값을 변경하면 기존값도 같이 변경된다.
    -> 다른 부분에서 데이터 변경 가능

  • reference counting으로 메모리 관리 가능

참고 출처
상어의 개발 블로그

sujinnaljin Medium

profile
iOS Developer

0개의 댓글