2016-09-12 23 views
11

chciałbym zrobić coś takiego:Jak przekazać typ Swift jako argument metody?

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

w Objective-C klasa klasie było Class

+0

będziemy chcieli wykorzystać rodzajowych z wejściem metody typu 'T.Type' można następnie oddane do' T' - patrz na przykład [tej] Q & a (http: //stackoverflow.com/questions/37216240/generic-fu nunch-taking-a-type-name-in-swift) – Hamish

Odpowiedz

30

Musisz użyć funkcji rodzajowe gdzie parametr jest używany wyłącznie w celach informacyjnych typu SO rzucasz ją T:

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

// usage 
doSomething("Hello World", myType: String.self) 
Powiązane problemy