CocoaPods trunk is moving to be read-only. Read more on the blog, there are 17 months to go.

UserDefault 1.0

UserDefault 1.0

Maintained by hx.



  • By
  • hxwxww

UserDefault

让UserDefaults使用更简单!

  • 使用@UserDefault

    @UserDefault("testRawRepresentable", defaultValue: .day)
    var theme: Theme

    @UserDefault("testDate", defaultValue: Date())
    var launchDate: Date

    @UserDefault("testData", defaultValue: Data())
    var data: Data

    @UserDefault("testURL", defaultValue: URL(string: "http://www.123.com")!)
    var url: URL

    @UserDefault("testDouble", defaultValue: 0.13)
    var doubleValue: Double

    @UserDefault("testArray", defaultValue: [1, 2, 3])
    var array: [Int]

    @UserDefault("testDict", defaultValue: ["12": Theme.day])
    var dict: [String: Theme]

    @UserDefault("testOptional", defaultValue: nil)
    var optionalValue: String?

  • 使用UserDefault.Key:

extension UserDefaults.Keys {

    static let boolKey = UserDefaults.Key<Bool>("boolKey")
    static let intKey = UserDefaults.Key<Int>("intKey")
    static let userKey = UserDefaults.Key<User>("userKey")
}

    @UserDefault(.boolKey, defaultValue: false)
    var firstLaunch: Bool

    @UserDefault(.userKey, defaultValue: User(name: "张三", age: 18))
    var user: User

    @UserDefault(.intKey, defaultValue: 5)
    var intValue: Int

  • 使用subscript:

extension UserDefaults.Keys {
        
    static let subscriptDictKey = UserDefaults.Key<[String: User]>("subscriptDictKey")
    static let subscriptThemeKey = UserDefaults.Key<Theme>("subscriptThemeKey")
}

    let userDefaults = UserDefaults.standard


    let subscriptInt: Int = userDefaults["subscriptIntKey"] ?? 0
    print("subscriptInt: \(subscriptInt)")

    userDefaults["subscriptIntKey"] = 1
    let newSubscriptInt: Int = userDefaults["subscriptIntKey"] ?? 0
    print("newSubscriptInt: \(newSubscriptInt)")


    let subscriptDict = userDefaults[.subscriptDictKey]
    print("subscriptDict: \(subscriptDict)")

    userDefaults[.subscriptDictKey] = ["1": User(name: "李四", age: 22)]
    print("newSubscriptDict: \(userDefaults[.subscriptDictKey])")


    let subscriptTheme = userDefaults[.subscriptThemeKey]
    print("subscriptTheme: \(subscriptTheme)")

    userDefaults[.subscriptThemeKey] = .night
    print("newSubscriptTheme: \(userDefaults[.subscriptThemeKey])")