2016-04-06 12 views
2
class MyClass:NSObject { 

     var member = "abc" 
     func instanceMethod(){ 
      print("\(member)") 
     } 
     class func classMethod(){ 
      print("\(member)") 
     } 
} 

Her iki yöntemde "üye" ye erişmek istiyorum.Her iki yöntemde ve sınıf yönteminde üye nasıl kullanılır?

+1

** (1) ** olun başlatmak için bir başlatıcı ekleyin emin 'member' mülkiyet sınıfınızın (veya bir varsayılan değer ile başlatılması) ** (2) ** 'self' anahtar sözcüğüyle önek yaparak 'üye' erişebilirsiniz, örneğin 'self.member', örnek metodunuzda, ** (3) ** her iki baskı ifadenizde parantez içinde bir eksiklik var') '. ** (4) ** 'Sınıf' (statik) işleviniz için, bir 'instance özelliği'ne erişemezsiniz, çünkü bu, sınıfın kendisinin bir _instance'ına doğal olarak bağlıdır, bir sınıf (statik) işlevi ise yalnızca sınıfın _type_ (bir _instance_). – dfri

+0

MyClass'ın tüm örneklerinde paylaşılan üyeye ait statik bir değişken oluşturabilir ve ona aşağıdakilerle erişebilirsiniz: MyClass.member. –

+0

Teşekkürler dfri, öneriye göre sorumu düzelttim – sschunara

cevap

1

a tek ya da aynı türden statik organı aracılığıyla olacağını yapmanın tek yolu:

class MyClass: NSObject { 

     static var sharedInstance : MyClass? 
     var member:String 

     func instanceMethod(){ 
      print("\(MyClass.sharedInstance?.member)" 
     } 

     static func classMethod(){ 
      print("\(sharedInstance?.member)" 
     } 
} 
İlgili konular