Apple имеет хорошее объяснение методов типа (класса) здесь.
Однако их пример выглядит так:
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.typeMethod()
Я вижу, что этот тот же самый пример высевается везде.
Однако мне нужно вызвать мой метод типа из экземпляра моего класса и который, похоже, не вычисляется.
Я ДОЛЖЕН делать что-то неправильно, но я заметил, что Apple еще не поддерживает свойства класса:( Мне интересно, буду ли я собираться в сухую воду для воды.
Вот что я пробовал (на игровой площадке):
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()
Кто-нибудь знает меня?