iOS开发中几种常见的存储方式

1、archive 归档

数据的保存

   1:          let result = NSKeyedArchiver.archiveRootObject(contacts, toFile: path as String)
   2:          println("保存结果\(result)")

数据的读取:

   1:  var t:[Contact]?
   2:          var any:AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithFile(path as String)
   3:          if any == nil {
   4:              t = [Contact]()
   5:          }else{
   6:              println("读取成功")
   7:              t = any as? [Contact]
   8:          }

需要在模型中实现init With Coder方法 和 encodewithCoder方法

image

 

 

2、User Default

image

NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。

NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。如果你想存储其他类型的对象,你要将其归档并创建一个NSData来实现存储。
从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。例如你使用mutable string做为“MyStringDefault”的值,当你做使用stringForKey:方法获取的值,这个值仍然是不可变的。
NSUserDefaults是单例,同时也是线程安全的

 

3、plist 存储

 

   1:   [dataDic setValue:eachDArray forKey:"key"];
   2:  [dataDic writeToFile:filename atomically:YES];

 

 

 

Ref

http://blog.csdn.net/world_liu/article/details/9177485

posted @ 2015-05-10 08:24  有奈了  阅读(368)  评论(0编辑  收藏  举报