Apple hat eine schöne Erklärung der Methoden des Typs (Klasse) Here.Aufruf von Methoden innerhalb einer Instanz Methode
jedoch ihr Beispiel sieht wie folgt aus:
class SomeClass {
class func someTypeMethod() {
// type method implementation goes here
}
}
SomeClass.typeMethod()
Ich sehe das genau das gleiche Beispiel überall parroted.
Allerdings muss ich meine Type-Methode innerhalb einer Instanz meiner Klasse aufrufen, und das scheint nicht zu berechnen.
ich etwas falsch sein muss, aber ich merkte, dass Apple noch keine Klasseneigenschaften unterstützt :(. Ich frage mich, wenn ich zu einem Blockkalibrators für Wasser werde.
Hier ist, was ich versucht habe (in ein Spielplatz):.
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()
ist für mich eine Ahnung jemand
Sie sind absolut richtig. Ich habe keine Ahnung, warum ich das nicht versucht habe. Ich werde Sie greencheck, sobald das Zeitlimit abgelaufen ist, Speedy Gonzales. –
Ich habe gerade realisiert, warum ich das nicht versucht habe. Die automatische Füllung besteht darauf, eine ClassA-Instanz dort einzufügen, wenn ich das tue. Nicht sicher warum ... –
self.dynamicType.staticMethod() hat nicht für mich funktioniert. –