// // NSUserDefaults+JXAdd.m // 链之家 // // Created by 曾觉新 on 2017/11/16. // Copyright © 2017年 NetLoanHome. All rights reserved. // #import "NSUserDefaults+JXAdd.h" @implementation NSUserDefaults (JXAdd) + (void)jx_setObject:(nullable id)obj forKey:(NSString *)key { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (!obj) { [defaults removeObjectForKey:key]; return; } if ([obj respondsToSelector:@selector(encodeWithCoder:)] == NO) { NSLog(@"Error save object to NSUserDefaults. Object must respond to encodeWithCoder: message"); return; } NSError *error; NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:obj requiringSecureCoding:true error:&error]; // NSLog(@"%@", error); [defaults setObject:encodedObject forKey:key]; [defaults synchronize]; } + (nullable id)jx_objectForKey:(NSString *)key class:(Class)cls { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSData *encodedObject = [defaults objectForKey:key]; if (encodedObject && [encodedObject.class isSubclassOfClass:NSData.class]) { NSError *error; id obj = [NSKeyedUnarchiver unarchivedObjectOfClass:cls fromData:encodedObject error:&error]; // NSLog(@"%@", error); return obj; } else { return nil; } } @end