글쎄, 하나는 Swift와 동등한 것 [NSString class]
입니다 .self
( 매우 얇지 만 Metatype docs 참조 ).
사실, NSString.class
작동하지 않습니다! 을 사용해야 NSString.self
합니다.
let s = NSString.self
var str = s()
str = "asdf"
마찬가지로 신속한 수업으로 시도했습니다 ...
class MyClass {
}
let MyClassRef = MyClass.self
// ERROR :(
let my_obj = MyClassRef()
흠… 오류 내용 :
플레이 그라운드 실행 실패 : 오류 : : 16 : 1 : 오류 : 메타 타입 값이있는 클래스 유형 'X'의 개체를 생성하려면 '@required'이니셜 라이저가 필요합니다.
Y().me()
^
<REPL>:3:7: note: selected implicit initializer with type '()'
class X {
^
이것이 의미하는 바를 알아내는 데 시간이 좀 걸렸습니다. 수업이 @required init()
class X {
func me() {
println("asdf")
}
required init () {
}
}
let Y = X.self
// prints "asdf"
Y().me()
일부 문서 .Type
에서는 이것을라고 부르지 만 MyClass.Type
놀이터에서 오류가 발생합니다.