SwiftUserDefault
Now, support Swift 5.1, and you can use by PropertyWrapper
SwiftUserDefault, which is just wrap NSUserDefaults, make you easy to use.
struct TestUserDefault {
@UserDefaultsItem("objectTest") static var objectTest: AnyObject
@UserDefaultsItem("stringTest") static var stringTest: String
@UserDefaultsItem("boolTest") static var boolTest: Bool
@UserDefaultsItem("intTest") static var intTest: Int
@UserDefaultsItem("floatTest") static var floatTest: Float
@UserDefaultsItem("doubleTest") static var doubleTest: Double
@UserDefaultsItem("dataTest") static var dataTest: Data
@UserDefaultsItem("dateTest") static var dateTest: Date
@UserDefaultsItem("[Bool]") static var boolArrayTest: [Bool]
@UserDefaultsItem("[Int]") static var intArrayTest: [Int]
@UserDefaultsItem("[String]") static var stringArrayTest: [String]
@UserDefaultsItem("[Data]") static var dataArrayTest: [Data]
@UserDefaultsItem("<String : Int>") static var dictIntTest: [String : Int]
@UserDefaultsItem("<String : String>") static var dictStringTest: [String : String]
@UserDefaultsItem("<String : Date>") static var dictDateTest: [String : Date]
@UserDefaultsItem("<String : Bool>") static var dictBoolTest: [String : Bool]
}In your project, use can declear your store type, like above, UserDefaultsItem would synchronize it once you set newValue, if newValue is nil, the key's value would be remove from NSUserDefaults.
set value
TestUserDefault.stringTest = "I'am test"get value
let value = TestUserDefault.stringTest // will be optional value "I'am test"
Install
By CocoaPods use:
pod SwiftUserDefault

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
