Eu tenho uma variável global que precisa ser compartilhada entre meus ViewControllers.
No Objective-C, posso definir uma variável estática, mas não consigo encontrar uma maneira de definir uma variável global no Swift.
Você conhece uma maneira de fazer isso?
swift
global-variables
czzhengkw
fonte
fonte
Respostas:
No guia de programação oficial Swift :
Você pode defini-lo em qualquer arquivo e acessá-lo atual em
module
qualquer lugar. Portanto, você pode defini-lo em algum lugar do arquivo fora de qualquer escopo. Não há necessidadestatic
e todas as variáveis globais são computadas preguiçosamente.Você pode acessá-lo de qualquer lugar no módulo atual.
No entanto, você deve evitar isso, pois as variáveis globais não são boas para o estado do aplicativo e principalmente o motivo de erros.
Como mostrado nesta resposta , no Swift você pode encapsulá-los
struct
e acessar em qualquer lugar. Você também pode definir variáveis estáticas ou constantes no Swift. Encapsular emstruct
Você pode usar essa variável em qualquer classe ou em qualquer lugar
fonte
MyVariables
, por issoMyViewState
parece um copy / paste de erro de stackoverflow.com/a/24868789/1187415 :)Variáveis globais definidas fora de qualquer método ou fechamento podem ter escopo restrito usando a palavra-chave privada.
fonte
se você quiser usá-lo em todas as suas classes, poderá usar:
Se você quiser usar apenas uma classe, poderá usar:
fonte