更改静态变量

时间:2015-06-19 13:24:01

标签: swift static global-variables

我是swift的新人。如果我走对了路,我想问你。

我有这样的事情:

class ViewController: UIViewController {

    struct myVars {
        var static short_text = ""
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        loadData()
        println(short_text)
    }

    func loadData() {
         myVars.short_text = "Hello world!"
    }
}

此代码有效。我有“你好世界!”变量中的字符串,我可以打印它。但是我问你这是否是重新定义静态var的好方法?我这样做是因为我想在代码中使用这个变量。

感谢您的回答。

PS:最后的方法要困难得多。这仅是示例的短代码。

1 个答案:

答案 0 :(得分:1)

如果您的目的是使ViewController的此实例的变量可供其他类(即其他视图控制器)访问,那么您不必使用static。如果必须跨该类的多个实例访问该属性,则只需使用static。我认为这不是你想要的。

如果目的是在视图控制器之间传递数据,我建议你参考:

如果您搜索“在视图控制器之间传递数据”,您将找到许多其他类似的链接。

最重要的是,使用static是可能的,但可能不是你想要的。

两个旁注:

  1. 您在static内使用struct。 Swift 1.2不需要这种模式。如果你真的需要static(我认为你不需要它),你可以将你的变量声明为static并消除struct

    static var shortText = ""
    
  2. 我不认为您使用struct意味着打开“按价值与参考”的讨论,但如果您这样做,我可能会将您推荐给WWDC 2015视频{{3 }}