From 510df112087726dfdd57d797f25c8db0e62d18b7 Mon Sep 17 00:00:00 2001 From: Yozone Wang Date: Wed, 23 Feb 2022 18:10:29 +0800 Subject: [PATCH 1/2] Fix value upgraded from version 3 Version 3 of `SwiftyUserDefaults` saved `Array` as Array in UserDefaults, if upgrade it to version 4 or 5.x, the value will be saved as `Codable`. Then the values will be lost in the new version. --- Sources/DefaultsBridges.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/DefaultsBridges.swift b/Sources/DefaultsBridges.swift index 32615a60..6faa598b 100644 --- a/Sources/DefaultsBridges.swift +++ b/Sources/DefaultsBridges.swift @@ -240,6 +240,9 @@ public struct DefaultsCodableBridge: DefaultsBridge { } public func get(key: String, userDefaults: UserDefaults) -> T? { + if let data = userDefaults.object(forKey: key) as? T { + return data + } guard let data = userDefaults.data(forKey: key) else { return nil } From 91805e831eec63f9d4c38b177b4e494a7689e5c7 Mon Sep 17 00:00:00 2001 From: Logan Wang Date: Thu, 24 Feb 2022 13:58:26 +0800 Subject: [PATCH 2/2] Optimize DefaultsCodableBridge get method --- Sources/DefaultsBridges.swift | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Sources/DefaultsBridges.swift b/Sources/DefaultsBridges.swift index 6faa598b..cd7a65b7 100644 --- a/Sources/DefaultsBridges.swift +++ b/Sources/DefaultsBridges.swift @@ -240,11 +240,8 @@ public struct DefaultsCodableBridge: DefaultsBridge { } public func get(key: String, userDefaults: UserDefaults) -> T? { - if let data = userDefaults.object(forKey: key) as? T { - return data - } guard let data = userDefaults.data(forKey: key) else { - return nil + return userDefaults.object(forKey: key) as? T } return deserialize(data) }