1
Mappable 프로토콜을 구현하는 클래스가 있는데이 매개 변수를 함수에 매개 변수로 전달하고 해당 개체의 인스턴스를 가져 오려고합니다. 그러나 형식도 기본 형식이 될 수 있습니다.Swift는 generic 형식에서 인스턴스화합니다.
func getInstance<T>() -> T{}
func getInstance<T : Mappable>() -> T{}
하지만, 더 많은 종류의 것이 무시를 많이 될 수 있습니다 내가 뭘하려
는class MyMappable : Mappable {
required init?(map: Map) {
print("i am custom mappable")
}
}
func getInstance<T>() -> T{
if T.self == Int.self {
return 10 as T
}
if T.self is Mappable.self {
return T(Json : [:]) //this is the problem, T is not Mappable
}
}
이 같은의 getInstance 2 재정의를 만드는 것입니다. 첫 번째 기능에서 T가 표시 가능하다는 것을 신속하게 알 수있는 방법이 있습니까?
if let MappableType = T.self as? Mappable.self {
return MappableType(Json : [:])
}
보통 변수 이름은 소문자하지만이 경우에는 나는 그것이 형태로 사용되기 때문에 대문자를 사용하여 상상할 수 :