Ответ 1
Из официального руководства по программированию Swift guide:
Глобальные переменные - это переменные, которые определены вне функция, метод, замыкание или тип контекста. Глобальные константы и переменные всегда вычисляются лениво.
Вы можете определить его в любом файле и получить доступ к нему в текущем module
где угодно.
Таким образом, вы можете определить его где-то в файле за пределами любой области видимости. В static
нет необходимости, и все глобальные переменные вычисляются лениво.
var yourVariable = "someString"
Вы можете получить к нему доступ из любого места в текущем модуле.
Однако этого следует избегать, так как глобальные переменные не подходят для состояния приложения и, в основном, являются причиной ошибок.
Как показано в этом ответе, в Swift вы можете инкапсулировать их в struct
и иметь доступ в любом месте.
Вы также можете определить статические переменные или константы в Swift. Инкапсулировать в struct
struct MyVariables {
static var yourVariable = "someString"
}
Вы можете использовать эту переменную в любом классе или в любом месте
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"