【问题标题】:Mutable Global Variable in SwiftSwift 中的可变全局变量
【发布时间】:2015-06-16 05:14:29
【问题描述】:

我想知道是否有办法在 Swift 中创建可变全局变量?我知道我可以声明常量,但我想更改值。

谢谢

【问题讨论】:

  • 只需使用var 而不是let
  • @Kirsteins 当您尝试同时从多个来源设置变量时,这种方法会不会导致奇怪的行为?
  • @DánielNagy,仅当您正在编写多线程代码时。在这种情况下,您最好知道自己在做什么,并添加同步代码。
  • @DánielNagy 线程安全并不是这个问题独有的。在处理任何可变资源时都应该考虑到这一点。

标签: xcode swift global var mutable


【解决方案1】:

在swift中,你用var声明变量,用let声明常量。

如果你想要一个全局变量,在文件的顶部创建它,在任何封闭类/结构/枚举/等的定义之外。

如果您将像@DánielNagy 在他的评论中提到的那样,从多线程代码中访问该变量,那就更复杂了。但是最好避免从并发代码访问全局变量。

【讨论】:

    【解决方案2】:

    你可以写

    class myViewController : UIViewController{
    struct GlobalVar{
    static var myName : String?
    }
    override func viewDidLoad(){
    super.viewDidLoad()
    }
    }
    

    在任何视图控制器中并通过以下方式在任何地方访问它:

    //Another VC viewDidload
    GlobalVar.myName = "Hello"
    print(GlobalVar.myName)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      相关资源
      最近更新 更多