parent
8376ca7f51
commit
77c05abe10
24
readme.md
24
readme.md
|
@ -489,6 +489,30 @@ The effects of any call to `tieToLifetime(of:)` are reversed. Note however that
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
|
### How can I store a dictionary of arbitrary values?
|
||||||
|
|
||||||
|
You cannot store `[String: Any]` directly as it cannot conform to `Codable`. However, you can use the [`AnyCodable`](https://github.com/Flight-School/AnyCodable) package to work around this `Codable` limitation:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import AnyCodable
|
||||||
|
|
||||||
|
extension Defaults.Keys {
|
||||||
|
static let magic = Key<[String: AnyCodable]>("magic", default: [:])
|
||||||
|
}
|
||||||
|
|
||||||
|
// …
|
||||||
|
|
||||||
|
Defaults[.magic]["unicorn"] = "🦄"
|
||||||
|
|
||||||
|
if let value = Defaults[.magic]["unicorn"]?.value {
|
||||||
|
print(value)
|
||||||
|
//=> "🦄"
|
||||||
|
}
|
||||||
|
|
||||||
|
Defaults[.magic]["number"] = 3
|
||||||
|
Defaults[.magic]["boolean"] = true
|
||||||
|
```
|
||||||
|
|
||||||
### How is this different from [`SwiftyUserDefaults`](https://github.com/radex/SwiftyUserDefaults)?
|
### How is this different from [`SwiftyUserDefaults`](https://github.com/radex/SwiftyUserDefaults)?
|
||||||
|
|
||||||
It's inspired by that package and other solutions. The main difference is that this module doesn't hardcode the default values and comes with Codable support.
|
It's inspired by that package and other solutions. The main difference is that this module doesn't hardcode the default values and comes with Codable support.
|
||||||
|
|
Loading…
Reference in New Issue