Ho una struct con alcune variabili statiche che ho bisogno di usare tutta la mia app (non ho usato una classe singleton che ancora perché ho bisogno di più istanze in futuro, ma per ora ho solo questo singolo esempio).
Ogni variabile statica viene assegnato un valore di default, ma questi valori vengono modificati durante tutto il ciclo di vita dell'applicazione. Ho anche memorizzare questi cambiamenti in Utenteimpostazionipredefinite modo sarebbero persistente tra le chiamate, ma ho ancora utilizzare queste variabili statiche perché non ho voglia di leggere il Utenteimpostazionipredefinite ogni volta.
Ora voglio l'opzione per ripristinare tutti questi valori i valori predefiniti e io non riesco a capire come farlo correttamente. Posso usare una diversa struttura che conterrà i valori di default e quindi utilizzare una funzione per modificare i valori da una corrispondente variabile negli altri. Ma non sembra così elegante e ci deve essere un modo migliore di fare ciò che mi manca.
Ho provato ad aggiungere una funzione all'interno della struttura che esegue le seguenti operazioni:
func resetDefaults() {
self = DefaultStruct()
}
Il compilatore mi ha detto che non può cambiare auto e la necessità di rendere il func e in continua mutazione. Così ho fatto. Ma poi altrove nel mio codice, in un'altra classe, questa funzione non è più nel campo di applicazione. Se posso aggiungere:
DefaultStruct.resetDefaults()
Mi da altri errori, come ad esempio:
Instance member 'resetDefaults' cannot be used on type 'DefaultStruct'; did you mean to use a value of this type instead?
Anche io uso le variabili statiche di questa struttura direttamente, non ho mai inizializzato questa struttura. In altre parole, non ho una struttura dal nome che posso accedere altrove. O forse ho sbagliato qui e mi sto perdendo qualcosa?????
Il vostro aiuto sarebbe molto apprezzato. O mi sto perdendo qualcosa di molto di base, o ti basta usare un separato struct con i valori di default come ho detto prima.
Grazie!