数据持久化

阅读: 评论:0

数据持久化

数据持久化

 iOS提供的数据持久化方式有:SQLiteCoreData属性列表、NSUserDefault对象归档。

        这里来简单介绍下iOS开发中的对象归档:

        对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化)使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化)

        对象归档的文件是保密的磁盘上无法查看文件中的内容,而属性列表是明文的可以查看)

        对象归档有两种方式:1、对foundat中对象进行归档     2、自定义对象归档


        1、简单对象归档

 

       使用两个类:NSKeyedA richivNSKeyedUnarchiver

 

       NSStr*homeDirectori=NSHomeDirectori;  //获取根目录

 

       NSStringhomePath=[homeDirectoristringByA ppendingPathComponent:@"自定义文件名,如test.archiver"];

 

       NSA rrai*arrai=@[@"abc",@"123",@12];

 

       Boolflag=[NSKeyedA richivarchiveRootObject:arraitoFile:homePath];

 

      ifflag{

 

      NSLog@"归档成功!";

 

      }

 

      读取归档文件的内容:

 

      NSA rrai*arrai=[NSKeyedUnarchivunarchiveObjectWithFile:homePath];

 

      NSLog@"%@",arrai;

 

        这样就简单了实现了将NSA rrai对象的归档和解档。

 

       但是这种归档方式有个缺点,就是一个文件只能保存一个对象,如果有多个对象要保存的话那岂不是有n多个文件,这样不是很适合的所以有了下面这种归档方式。

 

        2、自定义内容归档

       归档:

       使用NSData实例作为归档的存储数据

       添加归档的内容---使用键值对

       完成归档

       解归档:

       从磁盘读取文件,生成NSData实例

       根据NSData实例和初始化解归档实例

       解归档,根据kei访问value

 

       NSStr*homeDirectori=NSHomeDirectori;//获取根目录

 

       NSStringhomePath=[homeDirectoristringByA ppendingPathComponent:@"自定义文件名,如test.archiver"];

 

       NSMutableData*data=[[NSMutableDataalloc]init];

 

       NSKeyedA rchiv*archiv=[[NSKeyedA rchivalloc]initForWritingWithMutableData:data];

 

       [archivencodeFloat:50forKey:@"age"];

 

       [archivencodeObject:@"jack"forKey:@"name"];

 

       [archivfinishEncoding]; //结束添加对象到data中

 

       [archivrelease];

 

       [datawriteToFile:homePath atomically:YES];//将data写到文件中保存在磁盘上

 

       NData*content=[NSDatadataWithConenteOfFile:homePath];

 

       NSKeyedUnarchiv*unarchiv=[[NSKeyedUnarchivalloc]initForReadingWithData:content];

 

       floatag=[unarchivdecodeFloatForKey:@"age"];

 

       NSStr*name=[unarchivdecodeObjectForKey:@"name"];

本文发布于:2024-02-03 23:33:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170697609351619.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:持久   数据
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23