열거형

열거형 값을 한번 지정한 이후로는 .을 이용해서 열거형명을 생략해서 사용 가능하다.
enum Direction {
case north, south, east, west
}
let direction = Direction.north
구조체

클래스 vs 구조체
참조 타입 vs 값 타입
클래스는 참조 타입(Reference Type)
클래스의 인스턴스를 변수나 상수에 할당하거나 함수에 전달할 때, 실제로는 그 인스턴스의 참조가 전달된다.
구조체는 값 타입(Value Type)
구조체의 인스턴스를 변수나 상수에 할당하거나 함수에 전달할 때, 그 인스턴스의 복사본이 전달된다.
상속(Inheritance)
클래스는 상속을 지원한다. 한 클래스는 다른 클래스로부터 상속받아 그 기능을 확장할 수 있다.
구조체는 상속을 지원하지 않는다. 구조체는 다른 구조체로부터 상속받을 수 없다.
소멸자(Deinitializer)
클래스는 소멸자(deinit)를 가질 수 있다. 인스턴스가 해제될 때 특정 작업을 수행할 수 있다.
구조체는 소멸자를 가질 수 없다.
타입 캐스팅(Type Casting)
클래스는 런타임 타입 캐스팅을 지원한다. 즉, 한 클래스의 인스턴스를 다른 클래스의 타입으로 캐스팅할 수 있다.
구조체는 타입 캐스팅을 지원하지 않다.
생성자
클래스는 멤버와이즈 이니셜라이저를 제공하지 않으며, 사용자 정의 이니셜라이저를 작성해야 한다.
구조체는 자동으로 멤버와이즈 이니셜라이저(memberwise initializer)를 제공한다. 이는 구조체의 모든 속성을 초기화하는 이니셜라이저이다.



제네릭



struct Box<T> {
var value: T
init(value: T) {
self.value = value
}
}
let integerBox = Box(value: 10)
let stringBox = Box(value: "Hello")
'공부 > Swift' 카테고리의 다른 글
| [iOS][13주차] ViewController 분석 (0) | 2024.05.30 |
|---|---|
| [iOS][12주차] 영화 상세 화면 만들기 (0) | 2024.05.23 |
| [iOS][11주차] 앱 만들기 진행 (0) | 2024.05.16 |
| [iOS][10주차] 박스오피스 앱 만들기 (0) | 2024.05.09 |
| [iOS][8, 9주차] 영화진흥위원회 오픈API 사용하기 (0) | 2024.05.02 |