• 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

     

     

     

     

     

      

  • 相关阅读:
    输入框联想
    SyntaxError: missing ; before statement 错误的解决
    Oracle数据库DECODE函数的使用.
    MySQL ----命令总结!
    个介!
    递归函数
    闭包函数与装饰器
    函数对象
    力扣题
    函数基础
  • 原文地址:https://www.cnblogs.com/wangerxiansheng/p/4388254.html
Copyright © 2020-2023  润新知