A property wrapper which reads and writes the wrapped value in the UserDefaults store.
It supports all the types that are allowed by UserDefaults.
Check all the supported types here.
@Stored("string") var string = ""
@Stored("int") var int: Int
@Stored("array") var array: [String]
@Stored("dictionary") var dictionary [String: Int]
The default value is based on the defaultStoredValue if nothing is set.
In addition to that, Optional, RawRepresentable and Codable are supported too.
For non-RawRepresentable enums use Codable.
@Stored("optional") var optional: String?
enum Enumeration: String, Storable {
case firstCase
case secondCase
static var defaultStoredValue: Enumeration {
return .firstCase
}
}
@Stored("enumeration") var enumeration: Enumeration
struct CustomType: Codable, Storable {
let name: String
static var defaultStoredValue: CustomType {
return CustomType(name: "")
}
}
@Stored("codable") var codable: CustomType
The wrapped value must conform to Storable.
Tip: To store an array of Storable (which is not supported, only RawStorable types are allowed), create a container struct around the array which conforms to Codable.
A property wrapper which reads and writes the wrapped value in the Keychain.
It supports all the base types, most of them rely on Codable.
Check all the supported types here.
@SecureStored("string") var string = ""
@SecureStored("int") var int: Int
@SecureStored("array") var array: [String]
@SecureStored("dictionary") var dictionary [String: Int]
The default value is based on the defaultStoredValue if nothing is set.
In addition to that, Optional, RawRepresentable and Codable are supported too.
For non-RawRepresentable enums use Codable.
@SecureStored("optional") var optional: String?
enum Enumeration: String, SecureStorable {
case firstCase
case secondCase
static var defaultStoredValue: Enumeration {
return .firstCase
}
}
@SecureStored("enumeration") var enumeration: Enumeration
struct CustomType: Codable, SecureStorable {
let name: String
static var defaultStoredValue: CustomType {
return CustomType(name: "")
}
}
@SecureStored("codable") var codable: CustomType
The wrapped value must conform to SecureStorable.
License
FHPropertyWrappers is available under the MIT license. See the LICENSE file for more info.
FHPropertyWrappers
Some useful Swift Property Wrappers.
Requirements
Installation
Swift Package Manager
Add the following to the dependencies of your
Package.swift
:Manual
Download the files in the Sources folder and drag them into you project.
Stored
A property wrapper which reads and writes the wrapped value in the
UserDefaults
store.It supports all the types that are allowed by
UserDefaults
. Check all the supported types here.In addition to that,
Optional
,RawRepresentable
andCodable
are supported too. For non-RawRepresentable
enums useCodable
.SecureStored
A property wrapper which reads and writes the wrapped value in the
Keychain
.It supports all the base types, most of them rely on
Codable
. Check all the supported types here.In addition to that,
Optional
,RawRepresentable
andCodable
are supported too. For non-RawRepresentable
enums useCodable
.License
FHPropertyWrappers is available under the MIT license. See the LICENSE file for more info.