2016-09-12 61 views
11

Böyle bir şey yapmak istiyorum:Swift türünü yöntem bağımsız değişkeni olarak nasıl geçiririm?

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

Objective-C ise sınıfın sınıf Sen parametre yalnızca tip bilgilere öylesine için kullanılan genel bir işlevi kullanmak zorunda Class

+0

sen T.Type' 'türde bir yöntem girişli jeneriği kullanmak isteyeceksiniz, daha sonra T '' yayın yapabilirsiniz - örneğin [Bu Q & a] (http bakın: //stackoverflow.com/questions/37216240/generic-fu nction alma-a-tipi-adı-in-swift) – Hamish

cevap

30

oldu Eğer T için döküm:

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

// usage 
doSomething("Hello World", myType: String.self)