Class, Stuct, Enum 형태의 인스턴스에 속한 메소드를 의미합니다.
클래스를 통해 호출할 수 없고, 클래스의 인스턴스를 만들어 실체화 하여 생성된 인스턴스를 통해서 호출할 수 있는 메소드 입니다.
Class Method 는 인스턴스를 만들어 실체화 하지 않아도 클래스를 통해 직접적으로 호출 할 수 있습니다.
func 키워드 앞에 class 키워드가 붙어 class func methodName(){} 형태로 선언합니다.Instance Method 와 달리 struct, enum 에서 사용할 수 없습니다.
Why?struct, enum 은 상속이 불가능 하기 때문입니다.
그렇다면 왜 상속이 불가능한 struct, enum 은 class Method 를 사용하지 못할까요?
Class Method 는 static 메소드를 상속 할 수 있도록 만든 메서드 이기 때문입니다.원래 프로그래밍 언어(예: JAVA) 에서는 static Method 를 overriding 할 수 없게 되어있지만, Swift 에서는 static Method 를 overriding 할 수 있도록 Class Method 를 추가 한겁니다.(Class 내에서는 static Method, class Method 는 같은 의미입니다. 즉, 클래스에 한해 static Method 를 override 하는 것이 가능합니다.)
둘의 차이로는
실체화(인스턴스) 하여 사용하느냐실체화(인스턴스) 하지않고 직접적으로 호출 하느냐정도가 있습니다.