46 lines
1.4 KiB
Objective-C
46 lines
1.4 KiB
Objective-C
//
|
|
// 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
|