美文网首页iOS Developer
轻量级——通过单例、归档存储多个用户数据

轻量级——通过单例、归档存储多个用户数据

作者: 九日青争 | 来源:发表于2019-04-30 14:45 被阅读173次

前言

之前一直是只利用单例存储个人信息的。为了保证用户数据的更新,还必须重写每个属性的set方法,为每一个属性建立一个key,一旦更新就要用NSUserDefaults进行存储,一条属性基本需要十行代码进行书写。如果属性多了起来,那代码量就更加惨不忍睹。且如果在用户数据包含model的情况下,还要进行额外处理,那过程就更加繁琐了。
索性,自己就利用归档相关的知识重新进行了整理。

demo


大家需要导入的文件如下:

然后在自己项目的中构建的用户模型继承TLBaseModel就行了。

在TLBaseModel中提供三个方法:

+ (instancetype)sharedInstance:(NSString *)key;
+ (void)saveData:(NSString *)key;
+ (void)clearData:(NSString *)key;

作用分别是:

根据标识key创建单例对象。
存储/更新数据。
删除数据。

1.存储数据

UserModel *userModel = [UserModel sharedInstance:UserKey0];
userModel.dic = @{@"sex":@"man"};
userModel.name = @"tl";
userModel.age = 25;
        
FatherModel *fatherModel = [FatherModel new];
fatherModel.arr = @[@"1",@"2",@"3"];
fatherModel.name = @"xxx";
fatherModel.phone = 18599990001;
userModel.father = fatherModel;

WifeModel *wifeModel = [WifeModel new];
wifeModel.name = @"yyy";
wifeModel.height = 165;
wifeModel.weight = 56.5;
fatherModel.wife = wifeModel;

[UserModel saveData:UserKey0];
打印结果:

2.更新数据

UserModel *userModel = [UserModel sharedInstance:UserKey0];
FatherModel *fatherModel = userModel.father;
WifeModel *wifeModel = fatherModel.wife;
 
userModel.age = 30;
fatherModel.arr = nil;
fatherModel.name = @"yyy";
wifeModel.name = nil;
 
[UserModel saveData:UserKey0];
打印结果:

3.删除数据

[UserModel clearData:UserKey0];
打印结果:

如果项目只需要存储单个用户信息,TLBaseModel的三个方法去掉参数传递,实现方法稍微改一下即可。


如果大家有什么疑问或者能帮忙改进的地方,欢迎评论。

相关文章

  • 轻量级——通过单例、归档存储多个用户数据

    前言 之前一直是只利用单例存储个人信息的。为了保证用户数据的更新,还必须重写每个属性的set方法,为每一个属性建立...

  • OC 数据归档

    数据归档作为一种轻量级的数据存储方式,和属性列表不同之处在于存储的对象广泛,几乎任何类型的对象都能被归档存储且存储...

  • UI控件进阶3——数据存储

    数据存储 iOS应用数据存储的常用方式?XML属性列表(plist)归档(归档:用某种格式来保存一个或者多个对象,...

  • iOS开发-数据持久化-1

    属性列表、 NSUserDefault、 归档archive、 数据库 属性列表 属性列表是一种明文的轻量级存储方...

  • iOS 用户登陆信息存储(转)

    天狐博客,原文地址 一.单例模式,登陆后把用户数据存储在单例对象我通常是存在AppDelegate,存在这里的好处...

  • Swift-使用UserDefaults(偏好存储)进行本地数据

    一. UserDefaults 常用使用场景 存储用户偏好设置 存储缓存信息 轻量级数据存储 UserDefaul...

  • 用单例模式优化本地存储

    1.用单例设计存储数据接口 1.1单例接口 1.2数据序列化接口 1.3数据反序列化接口 2.用单例接口隔离实现细...

  • 缓存之归档、反归档

    归档反归档是数据存储方式的一种。归档将复杂数据结构转换成NSData进行存储,反归档将NSData转成复杂数据结构...

  • iOS-归档NSCoding序列化

    归档 归档->数据持久化的方式->加密(把文件加密《不是把数据加密》 归档分为: 1、存储数据(编码、序列化、归档...

  • 数据存储之归档解档

    项目有收货地址的管理需要进行数据存储这里我们用归档来进行存储 1.因为有多个收货地址所以存储时为数组的存储 2.首...

网友评论

    本文标题:轻量级——通过单例、归档存储多个用户数据

    本文链接:https://www.haomeiwen.com/subject/riqvnqtx.html