zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    el-upload怎么拿到上传的图片的base64格式
    浮动到表格中某一行,根据改行信息高亮某区域文字,并设置对应滚动高度,使高亮文字出现在当前视野
    IE浏览器报Promise未定义的错误
    el-input为数字时验证问题
    Tomcat
    redis
    JSON
    JQuery基础
    JQuery高级
    Git学习(二)
  • 原文地址:https://www.cnblogs.com/zeyang/p/4491708.html
Copyright © 2011-2022 走看看