Métodos de tipo de llamada dentro de un método de instancia

Apple tiene una buena explicación de los methods de tipo (class) aquí .

Sin embargo, su ejemplo se ve así:

class SomeClass { class func someTypeMethod() { // type method implementation goes here } } SomeClass.typeMethod() 

Veo que este mismo ejemplo se repite en todos lados.

Sin embargo, necesito llamar a mi Método de Tipo desde una instancia de mi class, y eso no parece calcular.

DEBO estar haciendo algo mal, pero noté que Apple todavía no soporta las Propiedades de Clase :(. Me pregunto si voy a un lugar seco para el agua.

Esto es lo que he intentado (en un patio de recreo):

 class ClassA { class func staticMethod() -> String { return "STATIC" } func dynamicMethod() -> String { return "DYNAMIC" } func callBoth() -> ( dynamicRet:String, staticRet:String ) { var dynamicRet:String = self.dynamicMethod() var staticRet:String = "" // staticRet = self.class.staticMethod() // Nope // staticRet = class.staticMethod() // No way, Jose // staticRet = ClassA.staticMethod(self) // Uh-uh // staticRet = ClassA.staticMethod(ClassA()) // Nah // staticRet = self.staticMethod() // You is lame // staticRet = .staticMethod() // You're kidding, right? // staticRet = this.staticMethod() // What, are you making this crap up? // staticRet = staticMethod() // FAIL return ( dynamicRet:dynamicRet, staticRet:staticRet ) } } let instance:ClassA = ClassA() let test:( dynamicRet:String, staticRet:String ) = instance.callBoth() 

¿Alguien tiene una pista para mí?

 var staticRet:String = ClassA.staticMethod() 

Esto funciona. No toma ningún parámetro, por lo que no necesita pasar ninguno. También puede get ClassA dinámicamente así:

 var staticRet:String = self.dynamicType.staticMethod() 

En Swift 3 puedes usar:

 let me = type(of: self) me.staticMethod()