UserDefaults

extension UserDefaults

Usage examples

// declare a struct to be saved to / restored from UserDefaults
struct Language: Codable, Equatable {
   var name: String
   var version: String
}

let defaults = UserDefaults.standard
let languageKey = "defaultLanguage"

// create an instance
let testLanguage = Language(name: "Swift", version: "4")

// save in defaults
defaults.set(value: testLanguage, forKey: languageKey)

// restore from defaults should succeed
if let language: Language = defaults.get(forKey: languageKey) {
   // use the value found in defaults
} else {
   // did not find it in defaults
}

// remove from defaults
defaults.remove(forKey: languageKey)

// restore from defaults should fail
if let language: Language = defaults.get(forKey: languageKey) {
   // it won't get here after we removed the value from defaults
}
  • Save the value in defaults at key

    Declaration

    Swift

    func set<AStruct>(value: AStruct, forKey key: String) where AStruct : Decodable, AStruct : Encodable

    Parameters

    value

    value to be saved

    key

    target key

  • Recover a value from defaults at key

    Declaration

    Swift

    func get<AStruct>(forKey key: String) -> AStruct? where AStruct : Decodable, AStruct : Encodable

    Parameters

    key

    target key

    Return Value

    value or nil (if not found)

  • Remove a value if any at the key in defaults

    Declaration

    Swift

    func remove(forKey key: String)

    Parameters

    key

    target key