2
Ich möchte "Member" in beiden Methoden zugreifen.So verwenden Sie Member in Instanzmethode und Klassenmethode
Ich möchte "Member" in beiden Methoden zugreifen.So verwenden Sie Member in Instanzmethode und Klassenmethode
Der einzige Weg, das zu tun, indem ein Singleton oder ein statisches Element des gleichen Typs sein:
class MyClass: NSObject {
static var sharedInstance : MyClass?
var member:String
func instanceMethod(){
print("\(MyClass.sharedInstance?.member)"
}
static func classMethod(){
print("\(sharedInstance?.member)"
}
}
** (1) ** Achten Sie darauf, einen Initialisierer hinzufügen 'member' Eigenschaft zu initialisieren Ihrer Klasse (oder initialisieren mit einem Standardwert) ** (2) ** Sie können auf 'member' zugreifen, indem Sie dem Schlüsselwort' self' vorangestellt werden, z 'self.member', _in Ihrer Instanz method_, ** (3) ** In beiden Druckanweisungen fehlt eine abschließende Paranthese') '. ** (4) ** Für Ihre 'class' (statische) Funktion können Sie nicht auf eine' instance property' zugreifen, da diese natürlich mit einer _instance der Klasse selbst_ verbunden ist, während eine class (statische) Funktion nur auf die verweist _type_ der Klasse (keine _instance_ davon). – dfri
Sie können eine statische Membervariable erstellen, die für alle Instanzen von MyClass freigegeben ist und auf die Sie mit MyClass.member zugreifen können. –
Danke dfri, ich habe meine Frage nach Ihrem Vorschlag korrigiert – sschunara