.self
은 메타 유형 인스턴스을 해당 유형으로 반환합니다. 유형 안전 식별자 (예 : 문자열을 사용하는 것보다 안전). 그런 다음 사용 가능한 이니셜 라이저, 정적 메서드, 해당 메타 인스턴스 인스턴스의 정적 속성을 안전하게 호출 할 수 있습니다.
예를 들어, 그것은뿐만 아니라 변수에 저장할 수 :
let metatype: Uniforms.Type = Uniforms.self
및 Uniforms.Type
가 실제 메타 타입 (즉, 유형의 종류)입니다.
메타 타입 충돌 과정. 매우 빠른 예는이 메타 물건이 실제로 유용 할 수 있습니다 방법에 대한 느낌을 얻을 수 있습니다 :
class Super {
let id: Int
required init(id: Int) { self.id = id }
}
class SubA: Super { ... }
class SubB: Super { ... }
let subclass: Super.Type = SubA.self
한 후, 나중에 실제 서브 클래스 유형 이름 하드 코딩없이 인스턴스 를 만들 subclass
를 사용
을 let obj = subclass.init(id: 123) // new SubA instance.