Comment créer une variable globale?

j'ai une variable globale qui doit être partagée entre mon ViewControllers.

dans Objectif-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?

92
demandé sur whiskeyspider 2014-10-04 21:25:54

2 réponses

de la programmation swift guide

les variables globales sont des variables qui sont définies en dehors de tout fonction, méthode, fermeture ou contexte de type. Constantes globales et les variables sont toujours calculées paresseusement

, Vous pouvez le définir dans un fichier et peuvent y 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 par lazily.

 var yourVariable = "someString"

et vous pouvez accéder à partir de n'importe où dans le module actuel.

cependant, vous devez éviter que les variables globales ne sont pas bonnes pour l'état de l'application et principalement en raison de bogues.

comme indiqué dans ce réponse Dans swift, vous pouvez les encapsuler dans struct et y accéder n'importe où. Vous pouvez définir des variables statiques ou constantes swift aussi. Encapsulé dans struct

struct MyVariables {
    static var yourVariable = "someString"
}

vous pouvez utiliser cette variable dans n'importe quelle classe ou n'importe où

let string = MyVariables.yourVariable
println("Global variable:\(string)")

//Changing value of it
MyVariables.yourVariable = "anotherString"
161
répondu codester 2018-02-17 07:22:06

les variables globales qui sont définies en dehors de toute méthode ou fermeture peuvent être limitées par l'utilisation du mot-clé privé.

import UIKit

// MARK: Local Constants

private let changeSegueId = "MasterToChange"
private let bookSegueId   = "MasterToBook"
13
répondu Dan C 2016-04-01 17:40:39