J'ai une variable globale qui doit être partagée entre mes ViewControllers.
En Objective-C, je peux définir une variable statique, mais je ne trouve pas de moyen de définir une variable globale dans Swift.
Connaissez-vous un moyen de le faire?
swift
global-variables
czzhengkw
la source
la source
Réponses:
Extrait du guide de programmation officiel Swift :
Vous pouvez le définir dans n'importe quel fichier et y accéder en courant
module
n'importe où. Vous pouvez donc le définir quelque part dans le fichier en dehors de toute portée. Il n'y a pas besoin destatic
et toutes les variables globales sont calculées paresseusement.Vous pouvez y accéder de n'importe où dans le module actuel.
Cependant, vous devez éviter cela car les variables globales ne sont pas bonnes pour l'état de l'application et principalement en raison de bogues.
Comme indiqué dans cette réponse , dans Swift, vous pouvez les encapsuler
struct
et y accéder n'importe où. Vous pouvez également définir des variables statiques ou des constantes dans Swift. Encapsuler dansstruct
Vous pouvez utiliser cette variable dans n'importe quelle classe ou n'importe où
la source
MyVariables
, celaMyViewState
ressemble donc à une erreur de copier / coller de stackoverflow.com/a/24868789/1187415 :)Les variables globales définies en dehors de toute méthode ou fermeture peuvent être restreintes à la portée à l'aide du mot clé private.
la source
si vous souhaitez l'utiliser dans toutes vos classes, vous pouvez utiliser:
si vous souhaitez utiliser une seule classe, vous pouvez utiliser:
la source