Saving UIColor to and loading from NSUserDefaults

One way of doing it might be to archive it (like with NSColor, though I haven’t tested this): NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color]; [[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@”myColor”]; And to get it back: NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@”myColor”]; UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];

How can I use UserDefaults in Swift?

ref: NSUserdefault objectTypes Swift 3 and above Store UserDefaults.standard.set(true, forKey: “Key”) //Bool UserDefaults.standard.set(1, forKey: “Key”) //Integer UserDefaults.standard.set(“TEST”, forKey: “Key”) //setObject Retrieve UserDefaults.standard.bool(forKey: “Key”) UserDefaults.standard.integer(forKey: “Key”) UserDefaults.standard.string(forKey: “Key”) Remove UserDefaults.standard.removeObject(forKey: “Key”) Remove all Keys if let appDomain = Bundle.main.bundleIdentifier { UserDefaults.standard.removePersistentDomain(forName: appDomain) } Swift 2 and below Store NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: “yourkey”) NSUserDefaults.standardUserDefaults().synchronize() Retrieve var returnValue: [NSString]? … Read more

Saving custom Swift class with NSCoding to UserDefaults

In Swift 4 or higher, Use Codable. In your case, use following code. class Blog: Codable { var blogName: String? } Now create its object. For example: var blog = Blog() blog.blogName = “My Blog” Now encode it like this: if let encoded = try? JSONEncoder().encode(blog) { UserDefaults.standard.set(encoded, forKey: “blog”) } and decode it like … Read more

How to store custom objects in NSUserDefaults

On your Player class, implement the following two methods (substituting calls to encodeObject with something relevant to your own object): – (void)encodeWithCoder:(NSCoder *)encoder { //Encode properties, other class variables, etc [encoder encodeObject:self.question forKey:@”question”]; [encoder encodeObject:self.categoryName forKey:@”category”]; [encoder encodeObject:self.subCategoryName forKey:@”subcategory”]; } – (id)initWithCoder:(NSCoder *)decoder { if((self = [super init])) { //decode properties, other class vars self.question … Read more

All NSUserDefaults, all in tableview

You can set an array to userDefaults, the implementation is very simple. – (void)viewDidLoad { [super viewDidLoad]; [self addTextToUserDefaults:@”hello”]; [self addTextToUserDefaults:@”how are you?”]; [self addTextToUserDefaults:@”hi”]; for (NSString *text in [self textsInUserDefaults]) { NSLog(@”%@”, text); } } – (void)addTextToUserDefaults:(NSString *)aText { NSMutableArray *texts = [[[NSUserDefaults standardUserDefaults] objectForKey:@”textArray”] mutableCopy]; if (!texts) { texts = [NSMutableArray new]; } … Read more