利用归档存储数据
方法:缓存数据
/**
@param object 数据
@param key key值
+(void)cacheObject:(id)object forKey:(NSString *)key;
实现:
+(void)cacheObject:(id)object forKey:(NSString *)key {
[[NSUserDefaults standardUserDefaults] setObject:object forKey:key];
}
方法: 获取缓存数据
/**
@param key key值
@return 缓存的数据
+(id)objectInCacheForKey:(NSString *)key;
实现:
+(id)objectInCacheForKey:(NSString *)key {
return [[NSUserDefaults standardUserDefaults] objectForKey:key];
}
方法: 缓存BOOL
/**
@param bol YES/NO
@param key key值
+(void)cacheBool:(BOOL)bol forKey:(NSString *)key;
实现:
+(void)cacheBool:(BOOL)bol forKey:(NSString *)key {
[[NSUserDefaults standardUserDefaults] setBool:bol forKey:key];
}
方法: 获取缓存的BOOL值
/**
@param key key值
@return YES/NO
+(BOOL)boolInCacheForKey:(NSString *)key;
实现:
+(BOOL)boolInCacheForKey:(NSString *)key {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
方法名: 归档,以文件形式存储数据
/**
@param object 数据
@param fileName 文件名
+(void)archiveRootObject:(id)object toFile:(NSString *)fileName;
实现:
//存档
+(void)archiveRootObject:(id)object toFile:(NSString *)fileName {
NSString *filePath = [self filePath:fileName];
[NSKeyedArchiver archiveRootObject:object toFile:filePath];
}
方法: 解档,获取文件内容
/**
@param fileName 文件名
@return 存储在文件中的内容
+(id)unarchiveObjectWithFile:(NSString *)fileName;
实现:
//解档
+(id)unarchiveObjectWithFile:(NSString *)fileName {
NSString *filePath = [self filePath:fileName];
return [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
}
方法: 获取文件路径
/**
@param fileName 文件名
@return 文件路径
+(NSString *)filePath:(NSString *)fileName;
实现:
+(NSString *)filePath:(NSString *)fileName{
return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:fileName];
}
方法: 判断文件是否存在
/**
@param fileName 文件名
@return YES/NO
+(BOOL)cacheFileExistsAtPath:(NSString *)fileName;
实现:
+(BOOL)cacheFileExistsAtPath:(NSString *)fileName {
BOOL isExist = NO;
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:[self filePath:fileName]]) {
isExist = YES;
}else {
isExist = NO;
}
return isExist;
}
方法: 删除路径下指定文件名的文件
/**
@param fileName 文件名
+(void)removeCacheFileAtPath:(NSString *)fileName;
实现:
+(void)removeCacheFileAtPath:(NSString *)fileName {
if ([YDArchiveCacheManager cacheFileExistsAtPath:fileName]) {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *err;
[fileManager removeItemAtPath:[self filePath:fileName] error:&err];
}
}
网友评论