LeadKit/TIFoundationUtils/UserDefaultsBackingStore
Ivan Smolin 4c7b7a76c1 feat: add AsyncOperation - generic subclass of Operation with chaining and result observation support 2022-02-15 21:30:27 +03:00
..
Playground.playground feat: add AsyncOperation - generic subclass of Operation with chaining and result observation support 2022-02-15 21:30:27 +03:00
Sources feat: add AsyncOperation - generic subclass of Operation with chaining and result observation support 2022-02-15 21:30:27 +03:00
README.md feat: add AsyncOperation - generic subclass of Operation with chaining and result observation support 2022-02-15 21:30:27 +03:00

README.md

UserDefaultsBackingStore

BackingStore property wrapper for UserDefaults

Usage example

extension StorageKey {
    static var onboardingFinishedKey: StorageKey<Bool> {
        .init(rawValue: "onboardingFinishedKey")
    }
}

final class ViewModel {
    @UserDefaultsBackingStore(key: .onboardingFinishedKey,
                              userDefaultsStorage: .standard,
                              getClosure: { $0.bool(forKey: $1) },
                              setClosure: { $0.set($1, forKey: $2) })
    var hasFinishedOnboarding = false // default value if nothing was stored in defaults
}