[swift] 초기화 중복 방지를 위한 Swift의 요구사항

Swift에서는 초기화 중복을 방지하기 위해 몇 가지 요구사항을 가지고 있습니다. 초기화 중복은 동일한 객체를 여러 번 초기화하려고 할 때 발생하는 문제로, 이는 예상치 못한 동작을 일으킬 수 있습니다. 따라서 Swift는 초기화 중복을 방지하기 위해 명시적으로 처리해야 하는 규칙을 제공합니다.

1. Designated initializer와 Convenience initializer

Swift에서는 Designated initializerConvenience initializer라는 두 가지 종류의 초기화 메서드를 사용합니다. Designated initializer는 주로 초기화 작업을 담당하며, Convenience initializer는 보조적인 역할을 수행합니다. 여러 개의 초기화 메서드가 있을 때, Designated initializer는 반드시 호출되어야 하며, Convenience initializerDesignated initializer를 호출하여 중복 초기화를 막아야 합니다.

2. Convenience initializer는 반드시 같은 클래스 내에서 다른 초기화 메서드를 호출해야 함

Swift에서는 Convenience initializer가 다른 초기화 메서드를 호출해야 한다는 제약이 있습니다. 이는 초기화 중복을 방지하기 위한 조치로, Convenience initializer는 항상 동일한 클래스 내에서 다른 초기화 메서드를 호출해야 합니다. 이를 통해 초기화 중복을 방지하고, 객체의 초기화 순서를 명확하게 정의할 수 있습니다.

3. 클래스 상속 시 초기화 중복

Swift에서는 클래스 상속을 수행할 때 초기화 중복을 막기 위해 몇 가지 규칙을 따라야 합니다. 자식 클래스에서 초기화 메서드를 구현할 때, 부모 클래스의 Designated initializer를 호출해야 합니다. 이를 통해 초기화 순서를 명시하고 초기화 중복을 방지할 수 있습니다.

참고 자료