SingleUserDefaultsStore

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

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

  • 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.

    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: T) throws

    Parameters

    object

    object to save.

  • Get object from store. O(1)

    Declaration

    Swift

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

    Declaration

    Swift

    public func delete()