NSUserDefaults,NSKeyedArchiver的使用

370 阅读1分钟
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

#define DUserDefaultsSET(object,key)  [DataManager setDataKey:key data:object]// 写
#define DUserDefaultsGET(key)         [DataManager getDataKey:key]// 取
#define DUserDefaultsRemove(key)      [DataManager removeObjectForKey:key]// 删

@interface DataManager : NSObject

//获取数据
+ (id)getDataKey:(NSString*)key;

//设置数据
+ (void)setDataKey:(NSString *)key data:(id)data;

//删除
+ (void)removeObjectForKey:(NSString *)key;

@end

NS_ASSUME_NONNULL_END
#import "DataManager.h"

@implementation DataManager

//获取数据
+ (id)getDataKey:(NSString*)key {
    NSData *dataObject = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    return [NSKeyedUnarchiver unarchiveObjectWithData:dataObject];
}

//设置数据
+ (void)setDataKey:(NSString *)key data:(id)data {
    NSData *modelObject = [NSKeyedArchiver archivedDataWithRootObject:data];
    [[NSUserDefaults standardUserDefaults] setObject:modelObject
                                              forKey:key];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

//删除
+ (void)removeObjectForKey:(NSString *)key{
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
}

@end