我是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:最后的方法要困难得多。这仅是示例的短代码。答案 0 :(得分:1)
如果您的目的是使ViewController
的此实例的变量可供其他类(即其他视图控制器)访问,那么您不必使用static
。如果必须跨该类的多个实例访问该属性,则只需使用static
。我认为这不是你想要的。
如果目的是在视图控制器之间传递数据,我建议你参考:
如果您搜索“在视图控制器之间传递数据”,您将找到许多其他类似的链接。
最重要的是,使用static
是可能的,但可能不是你想要的。
两个旁注:
您在static
内使用struct
。 Swift 1.2不需要这种模式。如果你真的需要static
(我认为你不需要它),你可以将你的变量声明为static
并消除struct
:
static var shortText = ""
我不认为您使用struct
意味着打开“按价值与参考”的讨论,但如果您这样做,我可能会将您推荐给WWDC 2015视频{{3 }}