• 自动归档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

  • 相关阅读:
    委托
    反射
    ADO.net五大对象
    DNS协议详解
    FTP协议详解
    .Net 多线程 异步编程 Await、Async和Task
    AsnycLocal与ThreadLocal
    Angular 6.X CLI(Angular.json) 属性详解
    Angular Npm Package.Json文件详解
    Npm常用命令整理
  • 原文地址:https://www.cnblogs.com/sixindev/p/4916577.html
Copyright © 2020-2023  润新知