Comment créer une variable globale?
J'ai une variable globale qui doit être partagée entre mon ViewControllers.
En Objective-C, je peux définir une variable statique, mais je ne peux pas trouver un moyen de définir une variable globale dans Swift.
Connaissez-vous un moyen de le faire?
- une réponse ici stackoverflow.com/questions/24868120/...
- Double Possible de Comment créer une variable globale dans Swift?
- vous pouvez définir la variable ou de la structure en dehors de la classe, alors vous êtes en mesure d'accéder à cette variable dans l'ensemble de l'application.
Vous devez vous connecter pour publier un commentaire.
De swift programmation guide
Vous pouvez le définir dans un fichier et peuvent accéder dans le courant
module
n'importe où.Ainsi, vous pouvez définir quelque part dans le fichier en dehors de toute portée. Il n'est pas nécessaire pour
static
et toutes les variables globales sont calculées paresseusement.et vous pouvez accéder à partir de n'importe où dans le module en cours.
Cependant, vous devriez éviter que les variables Globales ne sont pas bonnes pour l'état de l'application et principalement en raison de bugs.
Comme indiqué dans ce réponse
En swift, vous pouvez encapsuler dans
struct
et peut accéder de n'importe où.Vous pouvez définir des variables statiques ou une constante dans swift aussi. Encapsuler dans
struct
Vous pouvez utiliser cette variable dans une catégorie ou n'importe où
MyVariables
, doncMyViewState
ressemble à un copier/coller de l'erreur de stackoverflow.com/a/24868789/1187415 🙂struct
vous pouvez contrôler la visibilité de l'ensemble des variables parstruct
et vous pouvez également les lier à des logiques différentes unités, en les insérant dans les différents jambe de force si nécessaire.Comme l'Audio de la Constante d'application générale et constante.AppDelegate
et, plus tard, de les appeler par(UIApplication.sharedApplication().delegate as AppDelegate).myVariable
? Comment pourrait-il être différente (sauf pour la syntaxe de cours) à partir de votre solution? Merci pour une réponselet tcView = someView(); prjConstants.tcView = tcView
. Pour quelque raison, quand tcView est utilisé ailleurs, c'est de trouver l'ancienne référence.Les variables globales qui sont définis en dehors de toute méthode ou de fermeture peut être portée restreinte en utilisant le mot-clé private.
si vous voulez l'utiliser dans toutes vos classes, vous pouvez utiliser:
si vous voulez utiliser seulement dans une classe, vous pouvez utiliser :