Skip to content

Commit 9ec805c

Browse files
committed
store whether latest load was successful
1 parent 33dc938 commit 9ec805c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Sources/UserDefault/UserDefault.swift

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Foundation
33
@propertyWrapper public struct UserDefault<Value> where Value: DefaultsValueConvertible {
44
public let key: String
55
public let defaultValue: Value
6+
public private(set) var wasLoadedSuccessfully: Bool
67
public let defaults: UserDefaults
78

89
public var wrappedValue: Value {
@@ -17,7 +18,9 @@ import Foundation
1718
self.key = key
1819
self.defaults = defaults
1920
self.defaultValue = wrappedValue
20-
self.wrappedValue = Self.loadValue(from: defaults, forKey: key) ?? defaultValue
21+
let loaded = Self.loadValue(from: defaults, forKey: key)
22+
self.wrappedValue = loaded ?? defaultValue
23+
self.wasLoadedSuccessfully = loaded != nil
2124
}
2225

2326
public init(wrappedValue: Value, _ key: String) {
@@ -29,7 +32,9 @@ import Foundation
2932
}
3033

3134
public mutating func loadValue() {
32-
guard let loaded = Self.loadValue(from: defaults, forKey: key) else { return }
35+
let loaded = Self.loadValue(from: defaults, forKey: key)
36+
wasLoadedSuccessfully = loaded != nil
37+
guard let loaded else { return }
3338
wrappedValue = loaded
3439
}
3540

0 commit comments

Comments
 (0)