码迷,mamicode.com
首页 > 其他好文 > 详细

自动归档autoArchive By H.l

时间:2015-10-28 12:30:19      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

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

 

详情: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语句中众多属性名定义,以及后台数据变更所带来的麻烦.

 

其它参考:

利用运行时实现自动归档

https://github.com/iKingsly/iKYerialization

 

自动归档autoArchive By H.l

标签:

原文地址:http://www.cnblogs.com/sixindev/p/4916577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!