To run the example project, clone the repo, and run pod install
from the Example directory first.
Pref is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Pref'
Pref allows you to store custom objects with ease!
- Store objects that implement the codable protocol
- Store arrays that implement the codable protocol
Create an object that implements the codable protocol:
class DummyCodableObject: NSObject, Codable {
var name:String!
var lastName:String!
enum CodingKeys: String, CodingKey {
case name
case lastName = "last_name"
}
}
Create a Pref variable that accepts your object:
self.myStoredPref = Pref<DummyCodableObject>(prefs:UserDefaults.standard,key:"StamObject")
If you need a defaultValue:
self.myStoredPref = Pref<DummyCodableObject>(prefs:UserDefaults.standard,key:"StamObject", defaultValue:DummyCodableObject())
Use it at will:
let myStoredValue: DummyCodableObject = self.myStoredPref.get()
Or store a new value:
let newDummyCodableObject = DummyCodableObject()
newDummyCodableObject.name = "Lena"
newDummyCodableObject.lastName = "Bru"
self.myStoredPref.set(newDummyCodableObject)
Get notified when the object changes:
NotificationCenter.default.addObserver(forName: self.myStoredPref.willSetNotificationName, object: nil, queue: OperationQueue.main) { (note) in
let oldValue = note.userInfo?["previousValue"]
let newValue = note.userInfo?["newValue"]
//...
}
NotificationCenter.default.addObserver(forName: self.myStoredPref.didSetNotificationName, object: nil, queue: OperationQueue.main) { (note) in
let newValue = note.userInfo?["newValue"]
//...
}
You can even store collections:
let myCollectionStoredPref = Pref<[DummyCodableObject]>(prefs:UserDefaults.standard,key:"StamObjectArray")
let newDummyCodableObject = DummyCodableObject()
newDummyCodableObject.name = "Lena"
newDummyCodableObject.lastName = "Bru"
myCollectionStoredPref.set([newDummyCodableObject])
pikaboo
Pref is available under the MIT license. See the LICENSE file for more info.