2016-12-17 1 views
-1

Dans ma classe A, j'ai une variable définie comme suit:Accès getter et setter d'autres viewcontroller

var auth_token:String? 
var _auth_token:String {get{return self.auth_token!} set{auth_token = newValue} 

maintenant je veux accéder à cette auth_token d'autres classe viewcontroller. Comment puis-je atteindre cet objectif. Si je crée une nouvelle instance de la classe, elle me renverra comme prévu.

+0

Faites de votre classe A un singleton! puis accédez à la propriété _auth_token –

+1

Quel est le but de la déclaration de deux variables similaires et pourquoi 'auth_token' est-il optionnel quand il est forcé de déballer quand même? – vadian

Répondre

0

Vous pouvez faire votre classe A singleton à l'aide,

importation Fondation

class A { 
    static var sharedInstance = A() 
    var myVariable : String! = nil 

    private init() { 
     //no need for any implementation 
     //empty init removes all possibility of duplicate instance of class A 
    } 

} 

Comme vous pouvez le voir, il y a une variable statique nommée sharedInstance et une variable de chaîne appelée myVariable en classe A.

Déclarer sharedInstance comme statique et fournir une implémentation vide de init privé rend votre singleton de classe A.

Maintenant, tout ce que vous définissez la valeur de myVariable, peu importe où tous vos VCs auront la même valeur :)

Vous pouvez y accéder à l'aide,

let test = A.sharedInstance.myVariable 

Hope it helps :) Amusez-vous

+0

Merci. J'ai utilisé votre approche et j'ai pu résoudre le problème. –