Skip to content

Instantly share code, notes, and snippets.

@benaneesh
Created February 4, 2015 19:40
Show Gist options
  • Save benaneesh/8d19a70ff6469fff7489 to your computer and use it in GitHub Desktop.
Save benaneesh/8d19a70ff6469fff7489 to your computer and use it in GitHub Desktop.
Getting NSCoding on swift
import UIKit
class ClassName: NSObject, NSCoding {
var myVariable: String?
override init() {}
required init(coder aDecoder: NSCoder) {
myVariable = aDecoder.decodeObjectForKey("myVariable") as? String
}
func encodeWithCoder(aCoder: NSCoder) {
if let theVariable = myVariable {
aCoder.encodeObject(theVariable, forKey: "myVariable")
}
}
func save() {
let data = NSKeyedArchiver.archivedDataWithRootObject(self)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "ClassName")
}
func clear() {
NSUserDefaults.standardUserDefaults().removeObjectForKey("ClassName")
}
class func loadSaved() -> ClassName? {
if let data = NSUserDefaults.standardUserDefaults().objectForKey("ClassName") as? NSData {
return NSKeyedUnarchiver.unarchiveObjectWithData(data) as? ClassName
}
return nil
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment