自动归档autoArchive By H.l

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

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

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

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

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

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

方法1.字典转模型

   NSDictionary *dic [email protected]{ @"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

时间: 2024-11-29 07:23:28

自动归档autoArchive By H.l的相关文章

如何手工启动数据库自动归档模式

如果在Oracle安装时没有开启自动归档的模式的话,需要手工启动归档模式. a)        修改log_archive_start定义是否自动归档,10g版本后,这个参数作废,即使值是FALSE也自动归档,当前系统是11g,所以无需更改. b)        可以修改log_archive_format定义归档文件格式,一般使用默认值即可. c)        修改log_archive_dest_1,设置归档文件的目标目录. alter system set log_archive_des

android NDK 学习笔记(2)---eclipse 环境自动创建头文件.h ---javah

1.配置脚本 2.测试使用脚本 新建一个工程,加入public static native getStringFromC();,新建一个jni目录,然后选中MainActivity(前面那个方法所在的activity的名字) 如果配置了多个脚本,下拉菜单可以选择. 运行过后,jni目录下就会自动生成一个.h的文件

对象的copy和自动归档Archive操作

我们遇到的问题是什么? 在构建iOS的app过程中,我们经常会遇到的问题,对一个自定义对象model进行copy或者归档操作,所以我们必须实现nscopy协议和nscoding协议才能满足我们的需求,例如有个person对象如下: #import <Foundation/Foundation.h> @interface Person : NSObject<NSCopy> @property (nonatomic, copy) NSString *name; @end #import

Linux下Tomcat catalina.out自动归档的几种方式

问题:为什么需要归档? 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了. 为了避免这种情况,你需要及时对 catalina.out  进行归档. 问题:tomcat自身对日志内容进行归档,为什么日志还是会越来越大 实际上 Tomcat 自身也会对日志内容进行归档,但是归档后,Tomcat 不会清理 catalina.out 的内容,这将会导致 catalina.out  越来越大 解决方案 使用场景:Linux/Unix 执行命

Runtime应用(三)实现NSCoding的自动归档和自动解档

当我们需要将一个对象进行归档时,都要让该对象的类遵守NSCoding协议,再实现归档和接档方法.例如有一个Person类,该类有两个成员变量 @property (nonatomic,copy) NSString *name; @property (nonatomic,assign) int age; 两个协议的实现方法如下 /** * 将对象写入某个文件时需要调用,在该方法中说明哪些属性需要存储 */ - (void)encodeWithCoder:(NSCoder *)encoder { [

Oracle 归档日志

Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档.相应的日志被称为归档日志. 一.归档日志 是联机重做日志组文件的一个副本 包含redo记录以及一个唯一的log sequence number 对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档 对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用 自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档 归档日志用途 恢复数

文件的查找与压缩归档

文件的查找与压缩归档 locate find 压缩与归档 locate 主要用途 查询系统上预建的文件索引数据库 locate - find files by namelocate [OPTION]... PATTERN... locate查询文件时,会去搜索/var/lib/mlocate/mlocage.db, 这个数据库会在系统空闲时自动周期性进行,一般一天一次更新,手动更新命令为updatedb, 索引的构建需要遍历整个根文件系统,比较消耗资源.但locate有如下特性: 1. 模糊查找

Linux学习命令汇总六——磁盘分区,磁盘挂载,文件系统管理,压缩及归档命令

本章Blog相关Linux知识点 Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 系统中的文件.目录.软连接及文件保护信息等都存储在其中.按照名称进行存取. 磁盘:磁道,扇区 ,柱面 ,固定角速度 ,平均寻道时间 MBR :master boot recoard 主引导记录 (512字节),存放bootloader (引导加载器 446字节)+ 磁盘分区 (64字节) 一块磁盘最多分为4个主分区 ,或者3主分区1扩展分区  ,磁盘在C

9. Oracle 归档日志

转载自:http://blog.csdn.net/leshami/article/details/5784713 Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档.相应的日志被称为归档日志. 一.归档日志 是联机重做日志组文件的一个副本 包含redo记录以及一个唯一的log sequence number 对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档 对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖