NSKeyedArchiver
Demo地址: (https://github.com/MrPlusZhao/TPArchiver.git)
归档,解档是一种很常用的缓存方式,可以存储的类型也有很多, 这里讲的主要是对一下几种方式的存储, 进行的工具类封装
[NSArray class]
[NSDictionary class]
[NSString class]
[NSNumber class]
[NSData class]
当然,如果你觉得不够,可以自行扩展
主要有三个方法
/// 保存数据到本地
+ (BOOL)TP_SaveData:(_Nonnull id)data Key:( NSString * _Nonnull )key;
/// 清除数据
+ (BOOL)TP_RemoveData:( NSString * _Nonnull )key;
/// 通过Key读取本地缓存 ,className 可以传 可以不传, 用来标记返回类型
+ (id _Nullable )TP_GetData:( NSString * _Nonnull )key AnyClass:(_Nullable Class)className;
用法也很简单
[TPArchiver TP_SaveData:@[@"444",@"2",@"3"] Key:@"test111"];
[TPArchiver TP_SaveData:@{@"111":@"333",@"444":@"555"} Key:@"test222"];
[TPArchiver TP_SaveData:@"哈哈哈哈哈" Key:@"test333"];
id obj1 = [TPArchiver TP_GetData:@"test11133" AnyClass:[NSArray class]]; // 如果取不到数值, 就返回空数组
id obj2 = [TPArchiver TP_GetData:@"test222xxxx" AnyClass:nil];// 如果取不到值, 就返回nil
id obj3 = [TPArchiver TP_GetData:@"test333" AnyClass:nil];
NSLog(@"%@",obj1);
NSLog(@"%@",obj2);
NSLog(@"%@",obj3);
[TPArchiver TP_RemoveData:@"test111"];
[TPArchiver TP_RemoveData:@"test222"];