Tengo un struct con algunas variables estáticas que necesito para utilizar a lo largo de mi aplicación (yo no uso una clase singleton sin embargo, debido a que puede tener varias instancias en el futuro, pero ahora mismo solo tengo esta instancia única).
Cada variable estática se le asigna un valor por defecto, pero estos valores se cambian a lo largo de la vida útil de la aplicación. Yo también almacenar estos cambios en UserDefaults por lo que sería persistente entre las invocaciones, pero yo todavía uso de estas variables estáticas porque no me quiere leer el UserDefaults cada vez.
Ahora quiero la opción para restablecer todos estos valores a sus valores predeterminados originales y que no puedo averiguar cómo hacer esto correctamente. Puedo utilizar una estructura que mantenga los valores predeterminados y, a continuación, utilizar una func para cambiar los valores desde uno a su respectiva variable en la otra. Pero parece que no tan elegante y debe haber una mejor manera de hacer esto que me estoy perdiendo.
He intentado añadir un func dentro de la estructura que hace lo siguiente:
func resetDefaults() {
self = DefaultStruct()
}
El compilador me dijo que no se puede cambiar el auto y la necesidad de hacer la func mutando. Así que lo hice. Pero luego en otras partes de mi código, en otra clase, esta función ya no está en el alcance. Si añado:
DefaultStruct.resetDefaults()
Me da otros errores, tales como:
Instance member 'resetDefaults' cannot be used on type 'DefaultStruct'; did you mean to use a value of this type instead?
También, porque yo uso las variables estáticas de esta estructura directamente, nunca he inicializado esta estructura. En otras palabras, no tengo un struct por el nombre que me puede acceder a otros lugares. O tal vez estoy equivocado y me estoy perdiendo algo???
Su ayuda sería muy apreciada. O me estoy perdiendo algo muy básico o voy a usar un struct con los valores por defecto como he dicho antes.
Gracias!