QF——iOS中数据持久化的几种方式

数据持久化的几种方式:

 

一、属性列表文件:

  .plist文件是种XML文件。数组,字典都可以和它互相转换。数组和字典可以写入本地变成plist文件。也可以读取本地plist文件,生成数组或字典。

读取plist文件生成数组:plist——>NSArray

把数组写入plist文件:NSArray——>plist

 

二、NSUserDefaults:

它是单例的。通过[NSUserDefaults standardUserDefaults];提供唯一的实例

NSUserDefaults存储数据,本质上就是属性列表plist文件里。只不过是系统提供的,存储位置固定的,它存储在沙盒的Library目录下的Prefereces文件里。

保存数据:

读取数据:

另外,NSUserDefaults还可以使用应用程序束Bundle,使项目可以出现在手机的“设置”中,通过可视化的图形界面来保存用户偏好设置(保存设置)。等用户在图形界面设置好偏好后,在代码中同样是通过上面的代码来读取数据的。Bundle文件的创建:参考链接

 

 

三、归档:

  “归档”类似于“序列化”。所谓序列化就是:把对象转化为字节流,以便保存和传输。有所不同的是“归档”是指自定义对象,而“序列化”指特定的原生类对象(NSDate,NSArray,NSDictionary等)。

  NSUserDefaults的缺点是它只能存储系统原生类,而“归档”却可以存储任何对象,只要该对象实现了NSCoding协议。

  那怎么归档呢?

  1.自定义的类必须要实现NSCoding协议。

  2.重写该协议里的编码方法,对对象的每个属性进行编码,使其都为字节流。encodeWithCoder:

  3.调用NSKeyArichiver的类方法,完成归档。 [NSKeyedArichiver archiveRootObject:array toFile:homePath];

 

四、sqlite数据库:

  iOS中的数据库操作:SQLite数据库,第三方封装库FMDB,CoreData

 

 

 

 

 

  

posted @ 2015-04-02 20:17  &王先生  阅读(249)  评论(0编辑  收藏  举报