Class
- 참조 타입(call by reference)이다 -> 힙 영역에 생성된다 ( 주의 : 힙 영역에 참조타입만 적재되지는 않음 )
- 상속(단일)이 가능하다 -> 다형성 구현에 용이하다
- iOS 프레임워크의 대부분은 Class로 구현되어 있다 ( ex. UIViewController )
- Swift에서는 class의 인스턴스만 Object 부르며 Object는 ARC가 메모리 관리를 해준다
Struct
- 값 타입이다(call by value) -> 스택 영역에 생성된다
- 상속이 불가능하다
- Swift의 뼈대들은 대부분 Struct로 구현되어 있다 ( ex. Int, Double, String )
- 멀티스레딩에 안전하다
- Object가 아니기 때문에 AnyObject로 캐스팅할 수 없다
Enum
공식 문서 정의 : 관련된 값으로 이루어진 그룹을 공통의 type으로 선언해 type-safe를 보장하여 다룰 수 있게 해 준다.
- 값 타입이다(call by value) -> 스택 영역에 생성된다
- 상속이 불가능하다
'iOS > Swift' 카테고리의 다른 글
[Swift] CoW(Copy on Write)의 동작방식 + 메모리 주소 디버깅 (1) | 2023.02.16 |
---|---|
[Swift] Class의 성능을 향상 시킬수 있는 방법 :: Static Dispatch (0) | 2023.02.09 |
[Swift] 매우 간단하게 함수의 성능을 개선하기(메모리 관리) (0) | 2023.01.30 |
[Swift] 일급객체란? (0) | 2022.04.11 |
[Swift] Optional(옵셔널)도 결국 Enum type(열거형 타입)이다 (0) | 2022.03.26 |