2016-09-12 3 views
11

나는 같은 것을 할 싶습니다Swift 형식을 메서드 인수로 전달하는 방법은 무엇입니까?

func doSomething(a: AnyObject, myType: ????) 
{ 
    if let a = a as? myType 
    { 
     //… 
    } 
} 

을 목표 - C에서 클래스의 클래스 당신은 매개 변수가 유일한 유형 정보 그래서를 위해 사용되는 일반적인 기능을 사용할 필요가 Class

+0

당신은 T.Type''타입의 방법 입력과 제네릭을 사용할 수 있습니다, 당신은 다음 T''에 캐스팅 할 수 있습니다 - 예를 들어 [이 Q & A] (HTTP에 대한 참조 : //stackoverflow.com/questions/37216240/generic-fu 신속한 이름 입력) – Hamish

답변

30

했다 당신이 T에 캐스팅 :

func doSomething<T>(a: AnyObject, myType: T.Type) { 
    if let a = a as? T { 
     //… 
    } 
} 

// usage 
doSomething("Hello World", myType: String.self) 
관련 문제