2016-04-06 8 views
2

Ich möchte "Member" in beiden Methoden zugreifen.So verwenden Sie Member in Instanzmethode und Klassenmethode

+1

** (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

+0

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. –

+0

Danke dfri, ich habe meine Frage nach Ihrem Vorschlag korrigiert – sschunara

Antwort

1

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)" 
     } 
} 
Verwandte Themen