[swift] Swift의 Convenience 초기화의 사용 예

Swift에서는 Class나 Struct를 초기화할 때 Convenience 초기화를 사용할 수 있습니다. Convenience 초기화는 기존의 Designated 초기화를 호출하여 인스턴스를 초기화하는 편의 메서드입니다. 이번 글에서는 Swift에서 Convenience 초기화를 어떻게 사용하는지 예를 통해 알아보겠습니다.

Convenience 초기화란?

Convenience 초기화는 이미 정의된 Designated 초기화를 호출하여 인스턴스를 생성하고 반환하는 편의 메서드입니다. Convenience 초기화는 특정한 상황이나 사용자의 편의를 위해 추가적으로 제공되는 초기화 메서드입니다.

Convenience 초기화는 “convenience” 키워드로 정의되며, 초기화 메서드 내에서 self.init(...) 형태로 Designated 초기화를 호출해야 합니다. Convenience 초기화는 class hierarchy에서 최하위 클래스의 convenience 초기화만 호출할 수 있습니다.

Convenience 초기화 사용 예시

다음은 Point라는 구조체를 예로 들어 Convenience 초기화를 사용하는 방법을 보여줍니다.

struct Point {
    var x: Int
    var y: Int
    
    // Designated 초기화
    init(x: Int, y: Int) {
        self.x = x
        self.y = y
    }
    
    // Convenience 초기화
    convenience init(xy: Int) {
        self.init(x: xy, y: xy)
    }
}

위의 코드에서는 Point 구조체를 정의하고, Designated 초기화와 Convenience 초기화를 모두 사용하고 있습니다. Designated 초기화는 init(x:y:) 메서드로 x와 y값을 전달받아 인스턴스를 초기화합니다.

Convenience 초기화는 convenience init(xy:) 메서드로 동일한 값을 x와 y에 전달받아 Designated 초기화를 호출하여 초기화를 수행합니다. 따라서, Point(xy: 5)와 같이 호출하면 x와 y 모두에 5가 할당된 Point 인스턴스를 생성할 수 있습니다.

결론

Swift에서는 Convenience 초기화를 사용하여 더 간편하게 인스턴스를 초기화할 수 있습니다. Convenience 초기화는 이미 정의된 Designated 초기화를 호출하여 인스턴스를 생성하는 편의 메서드입니다. 위의 예시를 참고하여 Convenience 초기화를 사용해 볼 수 있습니다.