SingleUserDefaultsStore

open class SingleUserDefaultsStore<Object> where Object : Decodable, Object : Encodable

SingleUserDefaultsStore offers a convenient way to store a single Codable object in UserDefaults.

  • Used to backup and restore content to store.

    See more

    Declaration

    Swift

    public struct Snapshot : Codable
    extension SingleUserDefaultsStore.Snapshot: Equatable where Object: Equatable
  • Store’s unique identifier.

    Warning: Never use the same identifier for two -or more- different stores.

    Declaration

    Swift

    public let uniqueIdentifier: String
  • JSON encoder to be used for encoding object to be stored.

    Declaration

    Swift

    open var encoder: JSONEncoder
  • JSON decoder to be used to decode the stored object.

    Declaration

    Swift

    open var decoder: JSONDecoder
  • Initialize store with given identifier. O(1)

    Warning: Never use the same identifier for two -or more- different stores.

    Declaration

    Swift

    required public init(
        uniqueIdentifier: String,
        encoder: JSONEncoder = .init(),
        decoder: JSONDecoder = .init()
    )

    Parameters

    uniqueIdentifier

    store’s unique identifier.

    encoder

    JSON encoder to be used for encoding object to be stored. default is JSONEncoder()

    decoder

    JSON decoder to be used to decode the stored object. default is JSONDecoder()

  • Save object to store. O(1)

    Throws

    JSON encoding error.

    Declaration

    Swift

    public func save(_ object: Object) throws

    Parameters

    object

    object to save.

  • Get object from store. O(1)

    Declaration

    Swift

    public var object: Object? { get }
  • Delete object from store. O(1)

    Declaration

    Swift

    public func delete()
  • Generate a snapshot that can be saved and restored later. O(1)

    Declaration

    Swift

    public func generateSnapshot() -> Snapshot

    Return Value

    Snapshot object representing current contents of the store.

  • Restore a pre-generated Snapshot. O(1)

    Throws

    JSON encoding/decoding error.

    Declaration

    Swift

    public func restoreSnapshot(_ snapshot: Snapshot) throws

    Parameters

    snapshot

    Snapshot to restore.

  • Date when the last Snapshot was generated.

    Declaration

    Swift

    public var lastSnapshotDate: Date? { get }
  • Date when the last Snapshot was successfully restored.

    Declaration

    Swift

    public var lastRestoreDate: Date? { get }