All Versions
12
Latest Version
Avg Release Cycle
79 days
Latest Release
1345 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v4.1.0 Changes
August 28, 2020- โ Add ability to subscribe to multiple keys ab81276
- โ Add ability to prevent event propagation ab81276
0๏ธโฃ v4.0.0...v4.1.0
-
v4.0.0 Changes
April 18, 2020๐ฅ Breaking
0๏ธโฃ Get rid of
Defaults.OptionalKey
b2fdee2- Migrate:
extension Defaults.Keys {- static let name = OptionalKey<Double>("name")+ static let name = Key<Double?>("name") }
โ Remove the
.old
and.new
options forDefaults.observe
8376ca7- They're now the default. There was no good reason to not specify them and it was easy to leave them out by accident and then getting the incorrect
.newValue
/.oldValue
.
- They're now the default. There was no good reason to not specify them and it was easy to leave them out by accident and then getting the incorrect
0๏ธโฃ Rename
DefaultsObservation
toDefaults.Observation
31b56ce
๐ Improvements
- โ Add
@Default
property wrapper for SwiftUI 12a65c0 - โ Add Combine publishers 6029ac7
๐ Fixes
- 0๏ธโฃ
Defaults.reset()
now works with keys of different types, but it's limited to 10 keys because of Swift generics limitations 15c096d
0๏ธโฃ v3.1.1...v4.0.0
-
v3.1.1 Changes
October 30, 2019- ๐ Fix availability checks for CocoaPods a82d672
-
v3.1.0 Changes
October 30, 2019- โ Add
DefaultsObsevation.tieToLifetime(of:)
54f970b - โ Add support for NSSecureCoding 89d2d4d
- โ Add
-
v3.0.0 Changes
September 11, 2019๐ฅ Breaking
- ๐ Require Xcode 11 and Swift 5.1 for building 90ac6f8
- 0๏ธโฃ Switch from
defaults
toDefaults
90ac6f8
0๏ธโฃ Example:defaults[.unicorn]
โDefaults[.unicorn]
0๏ธโฃ Example:defaults.observable
โDefaults.observable
- ๐ Rename
defaults.clear
toDefaults.removeAll
and make it a static method 27c9997
โจ Enhancements
-
v2.0.2 Changes
July 25, 2019- ๐ Fix the source file location for SwiftPM 674fde4
-
v2.0.1 Changes
July 08, 2019- ๐ Fix Swift 5 upgrade warning 865a4b0
-
v2.0.0 Changes
April 05, 2019- โฌ๏ธ Upgrade to and require Swift 5. 908d3b4
-
v1.0.0 Changes
October 17, 2018Key observation
You can now observe changes to keys in a strongly-typed fashion. It even preserves the type of the
oldValue
andnewValue
keys in the change event.extension Defaults.Keys { static let isUnicornMode = Key\<Bool\>("isUnicornMode", default: false) }let observer = defaults.observe(.isUnicornMode) { change in// Initial eventprint(change.oldValue) //=\> falseprint(change.newValue) //=\> false// First actual eventprint(change.oldValue) //=\> falseprint(change.newValue) //=\> true} defaults[.isUnicornMode] = true
Shorter syntax
extension Defaults.Keys {- static let quality = Defaults.Key\<Double\>("quality", default: 0.8)+ static let quality = Key\<Double\>("quality", default: 0.8) }
๐ Support for alternative UserDefaults suites
let extensionDefaults = UserDefaults(suiteName: "com.unicorn.app")!extension Defaults.Keys { static let isUnicorn = Key\<Bool\>("isUnicorn", default: true, suite: extensionDefaults) } defaults[.isUnicorn]//=\> true// OrextensionDefaults[.isUnicorn]//=\> true
0๏ธโฃ Registers default values with the native UserDefaults
When you use, for example:
extension Defaults.Keys { static let quality = Key\<Double\>("quality", default: 0.8) }
๐ It will register
0.8
as the default value with UserDefaults, which can then be used in other contexts, like binding in Interface Builder. -
v0.2.2
June 19, 2018