https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
Initialization is the process of preparing an instance of a class, structure, or enumeration for use.
Initialization는 클래스, 구조체, 열거형를 사용하기 위해 인스턴스를 준비하는 과정이다.
This process involves setting an initial value for each stored property on that instance and performing any other setup or initialization that’s required before the new instance is ready for use.
이 과정은 그 인스턴스에 저장된 각각의 프로퍼티의 초기값을 설정하는 것과 새로운 인스턴스를 사용하기 위해 준비하기 전에 필요한 다른 셋업 혹은 초기화를 수행하는 것을 포함한다.
You implement this initialization process by defining initializers, which are like special methods that can be called to create a new instance of a particular type. Unlike Objective-C initializers, Swift initializers don’t return a value. Their primary role is to ensure that new instances of a type are correctly initialized before they’re used for the first time.
당신은 이 초기화 과정을 이니셜라이저를 정의함으로써 시행할 수 있다. 그리고 초기화 과정은 특정한 타입의 새로운 인스턴스를 만들어 호출될 수 있는 특별한 메소드와 비슷하다. Object-C의 이니셜라이저와 다르게 Swift 이니셜 라이저는 값을 반환하지 않는다. 그들(Swift 이니셜 라이저)의 초기 역할은 새로운 타입의 인스턴스가 처음 사용되기 전에 올바르게 초기화되는 것을 보장하는 것이다.
Instances of class types can also implement a deinitializer, which performs any custom cleanup just before an instance of that class is deallocated. For more information about deinitializers, see Deinitialization.
클래스 타입의 인스턴스는 deinitializer로 시행되기도 한다. deinitializer은 그 클래스의 인스터스가 비할당되기 전에 모든 custom cleanup을 시행한다. deallocated에 대한 더 많은 정보를 위해서는 Deinitialization를 보아라.
Classes and structures must set all of their stored properties to an appropriate initial value by the time an instance of that class or structure is created. Stored properties can’t be left in an indeterminate state.
클래스와 구조체는 클래스와 구조체의 인스턴스가 만들어질 때까지 모든 저장 프로퍼티를 적절한 초기값으로 설정해야한다. 저장 프로퍼티는 쉽게 가늠될 수 없는 상태로 남겨질 수 없다.(명확한 값을 가져야 한다.)
You can set an initial value for a stored property within an initializer, or by assigning a default property value as part of the property’s definition. These actions are described in the following sections.
당신은 저장 프로퍼티를 이니셜라이저없이 혹은 (프로퍼티의 정의의 부분으로써?) 기본 프로퍼티값을 할당함으로써 초기값을 설정할 수 있다. 이 액션은 다음 섹션에서 설명될 것이다.
Note
When you assign a default value to a stored property, or set its initial value within an initializer, the value of that property is set directly, without calling any property observers.
당신이 저장 프로퍼티에 기본 값을 할당하거나 이니셜라이저 없이 그것의 초기값을 설정할 때, 그 프로퍼티의 값은 어떠한 프로퍼티 감시자의 호출도 없이 직접 설정된다.
// 무슨 뜻인지 모르겠다.
Initializers are called to create a new instance of a particular type. In its simplest form, an initializer is like an instance method with no parameters, written using the init keyword:
이니셜라이저는 특정 타입의 새로운 인스턴스를 생성하면서 호출된다. 그것의 가장 간단한 형태에서 이니셜라이저는 파라미터(매개변수)가 없는, init 키워드가 사용되어 쓰여진 인스턴스 메소드와 같다.
init() {
// perform some initialization here
}
The example below defines a new structure called Fahrenheit to store temperatures expressed in the Fahrenheit scale. The Fahrenheit structure has one stored property, temperature, which is of type Double:
아래의 예시에서 Fahrenheit라는 새로운 구조체를 정의한다. 이 구조체는 화씨눈금에서 표현된 온도를 저장한다. 이 구조체는 더블형의 하나의 저장프로퍼티(temperature)가 있다.
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
print("The default temperature is \(f.temperature)° Fahrenheit")
// Prints "The default temperature is 32.0° Fahrenheit"
The structure defines a single initializer, init, with no parameters, which initializes the stored temperature with a value of 32.0 (the freezing point of water in degrees Fahrenheit).
이 구조체는 파라미터(매개변수)없이 단일 이니셜 라이저를 정의하며 저장된 온도를 32로 초기화시킨다.