Tengo una variable global que debe compartirse entre mis ViewControllers.
En Objective-C, puedo definir una variable estática, pero no puedo encontrar una manera de definir una variable global en Swift.
¿Conoces alguna forma de hacerlo?
swift
global-variables
czzhengkw
fuente
fuente
Respuestas:
De la guía de programación oficial de Swift :
Puede definirlo en cualquier archivo y puede acceder a él en
module
cualquier lugar actual . Entonces puede definirlo en algún lugar del archivo fuera de cualquier ámbito. No es necesariostatic
y todas las variables globales se calculan de forma perezosa.Puede acceder a esto desde cualquier lugar del módulo actual.
Sin embargo, debe evitar esto ya que las variables globales no son buenas para el estado de la aplicación y principalmente son la razón de los errores.
Como se muestra en esta respuesta , en Swift puede encapsularlos
struct
y puede acceder a ellos desde cualquier lugar. También puede definir variables estáticas o constantes en Swift. Encapsular enstruct
Puedes usar esta variable en cualquier clase o en cualquier lugar.
fuente
MyVariables
, por lo queMyViewState
parece un error de copiar / pegar de stackoverflow.com/a/24868789/1187415 :)Las variables globales que se definen fuera de cualquier método o cierre pueden tener un alcance restringido utilizando la palabra clave privada.
fuente
si quieres usarlo en todas tus clases puedes usar:
si desea usar solo en una clase, puede usar:
fuente