所谓归档:将复杂对象转化为NSData类型数据(复杂-->归档-->NSData--->WriteToFile)
注意:归档是将对象转化为数据字节,以文件的形式存储在磁盘上,所谓反归档,将NSData类型数据转化为复杂对象(读取文件-->NSData-->反归档--->复杂对象)
再说归档之前,先说下iOS的数据持久化方式:
那么问题来了,什么是数据持久化?
数据持久化(侠义的理解):仅仅指把域对象永久保存到数据库中,(广义的理解):包括和数据库相关的各种操作
优点:
1:数据持久化可以减少访问数据库数据的次数,增加应用程序执行的速度;
2:代码重用性高,能够完成大部分数据库操作;
3:低耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需要修改配置文件而不用修改代码。
那么iOS的数据化持久方式有哪些呢?
1:属性列表(Plist文件),NSUserDefault
2:归档(NSKeyedArchiver)
3:数据库(SQlite,CoreData,FMDB(第三方))
归档的三种方式:
1:对foundation框架的对象进行归档
2:对自定义的对象进行归档
3:对自定义内容进行归档
注意:归档生成的文件是加密的。