自动归档autoArchive By H.l

写点简单的代码,让开发更简单

 

详情:ios 应用实现快速的临时缓存之模型的自动归档

Demo:http://files.cnblogs.com/files/sixindev/AutoArchiver.zip

优点:1.模型里无需写一行代码即可自动归档(调用方法2)

   2.支持将NSDictionary 转化成模型,支持字典数组转换成模型数组

用法:只需要在模型里面引入 NSObject+JKCoding.h 头文件即可

 

方法1.字典转模型

   NSDictionary *dic =@{ @"name":@"jakill",
                         @"age":@"16",
                         @"className":@"5年级二班",
                       };
    
    //将json字典转化成模型
    Student *student = [Student objectFromDic:dic];

 

方法2:归档

    //1.保存并返回Data
    NSData *modelData = [NSKeyedArchiver archivedDataWithRootObject:student];
    
    //2.直接保存文件
    NSString *file = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"Student.data"];
    BOOL  isArchiveOK=[NSKeyedArchiver archiveRootObject:student toFile:file];
    if (!isArchiveOK) {
        NSLog(@"归档失败");//一般不会的
    }

 

方法3:解档

    Student *newStudent = [NSKeyedUnarchiver unarchiveObjectWithData:modelData];

 

这样很方便的实现对模型对象的归档,如果需要数据持久化,结合FMDB,直接保存NSData或直接保存JSON字符串(参考手思缓存),这样大大减少sqlite语句中众多属性名定义,以及后台数据变更所带来的麻烦.

 

扩展:利用Runtime 获取类成员属性实现FMDB的自动化,简化SqL语句

其它参考:

利用运行时实现自动归档

https://github.com/iKingsly/iKYerialization

 

转载于:https://www.cnblogs.com/sixindev/p/4916577.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值