J'ai une struct avec certaines variables statiques que j'ai besoin d'utiliser tout au long de mon application (je n'ai pas utiliser une classe singleton encore parce que je peut avoir besoin de plusieurs instances dans l'avenir, mais pour l'instant je n'ai que cette instance unique).
Chaque variable statique est attribuée une valeur par défaut, mais ces valeurs sont modifiées tout au long de la durée de vie de l'application. J'ai également stocker ces changements dans UserDefaults afin qu'ils soient persistants entre les invocations, mais j'ai toujours utiliser ces variables statiques parce que je ne veux pas lire à partir de la UserDefaults à chaque fois.
Maintenant, je veux l'option pour réinitialiser l'ensemble de ces valeurs à leurs valeurs d'origine par défaut et je ne peux pas comprendre comment le faire correctement. Je peux utiliser une structure qui va contenir les valeurs par défaut et ensuite utiliser un func pour changer les valeurs d'une de ses variables dans l'autre. Mais il ne semble pas si élégant et il doit y avoir une plus belle façon de le faire que je suis absent.
J'ai essayé d'ajouter une touche func à l'intérieur de la structure qui effectue les opérations suivantes:
func resetDefaults() {
self = DefaultStruct()
}
Le compilateur me dit je ne peux pas changer d'auto et besoin de faire la touche func mutation. Je l'ai fait. Mais alors, d'ailleurs dans mon code, dans une autre classe, cette fonction n'est plus dans le champ d'application. Si je les ajoute:
DefaultStruct.resetDefaults()
Il me donne d'autres erreurs, telles que:
Instance member 'resetDefaults' cannot be used on type 'DefaultStruct'; did you mean to use a value of this type instead?
Aussi, parce que j'utilise les variables statiques de cette structure directement, je n'ai jamais initialisé cette structure. En d'autres termes, je n'ai pas une telle structure par le nom que je peux accès ailleurs. Ou peut-être que je me trompe et je suis en manque de quelque chose???
Votre aide serait grandement appréciée. Soit je suis absent quelque chose de très basique ou je vais juste utiliser une struct avec les valeurs par défaut comme je l'ai dit avant.
Merci!