如何创build一个全局variables?

我有一个全局variables,需要在我的ViewControllers之间共享。

在Objective-C中,我可以定义一个静态variables,但是我找不到在Swift中定义一个全局variables的方法。

你知道一个办法吗?

从迅速的编程指南

全局variables是在任何函数,方法,闭包或types上下文之外定义的variables。全局常量和variables总是延迟计算

你可以定义任何文件,并可以在任何地方访问当前module 。 所以你可以在任何范围以外的文件中定义。不需要static ,所有的全局variables都是懒惰的计算。

  var yourVariable = "someString" 

你可以从当前模块的任何地方访问。

但是,你应该避免这种情况,因为全局variables对于应用程序状态并不好,主要是bug的原因。

正如在这个答案中所示,在swift中,你可以把它们封装在struct并且可以在任何地方访问。 您也可以在swift中定义静态variables或常量。在struct封装

 struct MyVariables { static var yourVariable = "someString" } 

你可以在任何类或任何地方使用这个variables

 let string = MyVariables.yourVariable println("Global variable:\(string)") //Changing value of it MyVariables.yourVariable = "anotherString" 

在任何方法或闭包之外定义的全局variables可以通过使用private关键字来限制作用域。

 import UIKit // MARK: Local Constants private let changeSegueId = "MasterToChange" private let bookSegueId = "MasterToBook"