Skip to content

Instantly share code, notes, and snippets.

@colinfwren
Last active January 24, 2025 23:45
Show Gist options
  • Save colinfwren/5b5cb0225978b109455806608eab5778 to your computer and use it in GitHub Desktop.
Save colinfwren/5b5cb0225978b109455806608eab5778 to your computer and use it in GitHub Desktop.
An example service that reads from UserDefaults on init
class ExampleService {
private let userDefaults: UserDefaults
var aStoredClass: SomeClass
init(userDefaults: UserDefaults) {
self.userDefaults = userDefaults
if let serialisedObject = self.userDefaults.object(forKey: "someKey") as? Data {
if let storedClass = try? JSONDecoder().decode(SomeClass.self, from: serialisedObject) {
self.aStoredClass = storedClass
} else {
self.aStoredClass = SomeClass()
}
}
doSomething(newValue: SomeClass) {
if let serialisedObject = try? JSONEncoder().encode(self.aStoredClass) {
self.userDefaults.set(serialisedObject, forKey: "someKey")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment