
1. 구조체와 클래스
- 개념적으로 구조체와 클래스는 하나의 큰 코드 블록이다.
- 스위프트는 기본적으로 객체지향 언어이다. 필요한 기능을 객체로 구현하여 사용한다는 것이 객체지향 언어의 핵심인데, 이때 객체를 만들어내는 주요 대상이 바로 구조체와 클래스이다.
2. 정의구문
- 구조체는 struct 키워드를 사용하여 정의하고, 클래스는 class 키워드를 사용하여 정의한다.
struct Resolution {
}
class VideoMode {
}
3. 메서드와 프로퍼티
- 구조체와 클래스 내부에서 정의된 변수나 상수를 프로퍼티 또는 속성이라고 한다.
struct Resolution {
var width = 0
var height = 0
func desc() -> String {
return "Resolution 구조체"
}
}
class VideoMode {
var interlaced = false
var frameRate = 0.0
var name: String?
func desc() -> String {
return "VideoMode 클래스"
}
}
4. 인스턴스
- 구조체나 클래스를 변수나 상수에 대입한 것은 인스턴스라고 한다.
let insRes = Resolution()
let insVMode = VideoMode()
5. 초기화
- 구조체나 클래스 이름 뒤에 빈 괄호를 붙이면 기본적인 인스턴스가 생성되지만, 괄호 안에 인자값을 넣으면 초기화 하기위해 필요한 값이다.
let defaultRes = Resolution(width: 1024, height: 768)