我有一个结构,一些静态变量那我需要用我的整个应用程序(我没有使用一个单独的类还没有,因为我可能需要多个实例,在未来,但是现在我只有这一个单一的实例)。
每个静态的分配的变量是一个默认的价值,但这些值得改变整个生命周期的应用程序。 我还保存这些变化UserDefaults,这样他们就可持续性之间调用,但我还是使用这些静态的变量的因为我不想读从UserDefaults每次。
现在我想可以选择重置所有这些数值来自原来的默认值和我可以弄清楚如何做到这一点正确。 我可以用一个单独的结构将举行的默认值,然后用一个功能改变的价值从一个到其各自的变量。 但它似乎不那么优雅而且必须有一个更好的方式来做到这一点,我丢失了。
我想添加一个功能的内部结构不会如下:
func resetDefaults() {
self = DefaultStruct()
}
编译器告诉我我不能改变自我并需要使func变异。 所以我没有。 但随后在其他地方,在我的代码,在另一类中,这种功能不再在的范围。 如果我append:
DefaultStruct.resetDefaults()
它给了我其他的错误,例如:
Instance member 'resetDefaults' cannot be used on type 'DefaultStruct'; did you mean to use a value of this type instead?
此外,因为我用的是静态的变量,这个结构体直接,我从来没有初始化这一结构。 换句话说,我没有这样一个结构体的名字,我可以访问其他地方。 或者,也许我错了在这里和我错过的东西???
你的帮助,将不胜感激。 要么我失去了一些东西非常基本的或者我将只使用一个单独的结构,与默认的价值观,因为我之前所说的。
谢谢!