Skip to content

Instantly share code, notes, and snippets.

@Salarsoleimani
Last active May 19, 2020 16:36
Show Gist options
  • Save Salarsoleimani/82cc67fa9f8535e24e51815da886761d to your computer and use it in GitHub Desktop.
Save Salarsoleimani/82cc67fa9f8535e24e51815da886761d to your computer and use it in GitHub Desktop.
//
// UserDefaults.swift
//
// Created by Salar Soleimani on 2020-04-14.
// Copyright © 2020 SaSApps. All rights reserved.
//
import Foundation
@propertyWrapper
struct UserDefault<T> {
let key: String
let defaultValue: T
init(_ key: String, defaultValue: T) {
self.key = key
self.defaultValue = defaultValue
}
var wrappedValue: T {
get {
return UserDefaults.standard.object(forKey: key) as? T ?? defaultValue
}
set {
UserDefaults.standard.set(newValue, forKey: key)
}
}
}
@Salarsoleimani
Copy link
Author

Usage:

struct Defaults {
  @UserDefault("appOpenedCount", defaultValue: 0)
  static var appOpenedCount: Int
}

And simply In the code:

Defaults.appOpenedCount = 1
let openCount = Defaults.appOpenedCount

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment