Skip to content

Instantly share code, notes, and snippets.

@Tulakshana
Last active November 25, 2020 09:42
Show Gist options
  • Save Tulakshana/f311efa3cd1c91fd4c46 to your computer and use it in GitHub Desktop.
Save Tulakshana/f311efa3cd1c91fd4c46 to your computer and use it in GitHub Desktop.
Saving custom objects in NSUserDefaults - Swift
import Foundation
class FYISession {
let savedUserKey = "savedUser"
static let sharedInstance = FYISession()
var user:FYIUser = FYIUser(userId: 0, userMobile: "", userEmail: "", userName: "")
func userLoggedIn() -> Bool{
return (user.uname.characters.count > 0) || self.loggedInUsingFB()
}
func rememberUser(newUser:FYIUser){
user = newUser
let archivedObject = NSKeyedArchiver.archivedDataWithRootObject(newUser)
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(archivedObject, forKey: savedUserKey)
defaults.synchronize()
}
func loadRememberedUser(){
if let decodedNSDataBlob = NSUserDefaults.standardUserDefaults().objectForKey(savedUserKey) as? NSData {
if let savedUser = NSKeyedUnarchiver.unarchiveObjectWithData(decodedNSDataBlob) as? FYIUser {
user = savedUser
}
}
}
}
import Foundation
class FYIUser:NSObject,NSCoding {
var id:NSInteger = 0
var mobile:String = ""
var email:String = ""
var uname:String = ""
required init(userId:NSInteger, userMobile:String, userEmail:String, userName:String) {
id = userId
mobile = userMobile
email = userEmail
uname = userName
super.init()
}
//MARK: - NSCoding -
required init(coder aDecoder: NSCoder) {
id = aDecoder.decodeObjectForKey("id") as! NSInteger
mobile = aDecoder.decodeObjectForKey("mobile") as! String
email = aDecoder.decodeObjectForKey("email") as! String
uname = aDecoder.decodeObjectForKey("uname") as! String
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(id, forKey: "id")
aCoder.encodeObject(mobile, forKey: "mobile")
aCoder.encodeObject(email, forKey: "email")
aCoder.encodeObject(uname, forKey: "uname")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment