¿Función genérica sin parámetro de input en Swift?

Tengo una function Swift genérica como esta:

func toNSArray<T>() -> [T] { ... } 

El comstackdor no da ningún error, pero no sé cómo llamar a esta function. Lo intenté:

 jList.toNSArray<String>() jList.<String>toNSArray() 

Pero no funcionó.

¿Cómo llamo a una function genérica en Swift sin parameters de input?

Necesita decirle a Swift qué tipo de retorno debe ser a través de algún context de llamada:

 // either let a: [Int] = jList.toNSArray() // or, if you aren't assigning to a variable someCall( jList.toNSArray() as [Int] ) 

Tenga en count que, en este último caso, esto solo sería necesario si someCall tomara un tipo vago como Any como argumento. Si, en cambio, someCall se especifica para tomar un [Int] como argumento, la function misma proporciona el context y puede escribir someCall( jList.toNSArray() )

De hecho, a veces el context puede inferirse muy tenuemente. Esto funciona, por ejemplo:

 extension Array { func asT<T>() -> [T] { var results: [T] = [] for x in self { if let y = x as? T { results.append(y) } } return results } } let a: [Any] = [1,2,3, "heffalump"] // here, it's the 0, defaulting to Int, that tells asT what T is... a.asT().networkinguce(0, combine: +)