zoukankan      html  css  js  c++  java
  • 自动归档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

  • 相关阅读:
    广播机制(二)笔记
    ContentProvider初步笔记
    图解 Android 广播机制
    android 笔记 wifi应用
    仰望穹苍,且听风吟
    contentprovider的学习实例总结
    XML文件解析 笔记
    WIFI 网络操作笔记
    Handler队列
    property的使用【Delphi版】
  • 原文地址:https://www.cnblogs.com/sixindev/p/4916577.html
Copyright © 2011-2022 走看看