Foire Aux Questions

August 26, 2025 · View on GitHub

Cette courte FAQ répond aux questions courantes que les développeurs peuvent se poser lors de l'utilisation de AppState.

Comment réinitialiser une valeur d'état ?

Pour les états persistants comme StoredState, FileState et SyncState, vous pouvez les réinitialiser à leurs valeurs initiales en utilisant les fonctions statiques reset sur le type Application.

Par exemple, pour réinitialiser un StoredState<Bool> :

extension Application {
    var hasCompletedOnboarding: StoredState<Bool> { storedState(initial: false, id: "onboarding_complete") }
}

// Quelque part dans votre code
Application.reset(storedState: \.hasCompletedOnboarding)

Cela réinitialisera la valeur dans UserDefaults à false. Des fonctions reset similaires existent pour FileState, SyncState et SecureState.

Pour un State non persistant, vous pouvez le réinitialiser de la même manière que les états persistants :

extension Application {
    var counter: State<Int> { state(initial: 0) }
}

// Quelque part dans votre code
Application.reset(\.counter)

Puis-je utiliser AppState avec des tâches asynchrones ?

Oui. Les valeurs de State et de dépendance sont thread-safe et fonctionnent de manière transparente avec Swift Concurrency. Vous pouvez y accéder et les modifier à l'intérieur des fonctions async sans verrouillage supplémentaire.

Où dois-je définir les états et les dépendances ?

Conservez tous vos états et dépendances dans des extensions de Application. Cela garantit une source unique de vérité et facilite la découverte de toutes les valeurs disponibles.

AppState est-il compatible avec Combine ?

Vous pouvez utiliser AppState avec Combine en pontant les changements de State vers des publicateurs. Observez une valeur State et envoyez des mises à jour via un PassthroughSubject ou un autre publicateur Combine si nécessaire.


Cette traduction a été générée automatiquement et peut contenir des erreurs. Si vous êtes un locuteur natif, nous vous serions reconnaissants de contribuer avec des corrections via une Pull Request.