• 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

  • 相关阅读:
    解析excel表格为DataSet
    easyui 上传文件代码
    上传文件后台代码
    easyui dialog
    C++ 强制设置文件大小
    std::function与std::bind
    glog 编译报错 ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h. See the document for detail.
    Qt删除目录
    C++11 中的std::function和std::bind
    TortoiseGit 使用教程
  • 原文地址:https://www.cnblogs.com/zeyang/p/4491708.html
Copyright © 2020-2023  润新知