iOS-数据持久化

持久化:
将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。

持久化数据的方式:

  • 文件存储:
  1. NSUserDefaults

  2. 文件 :
    plist
    Write写入方式:[data writeToFile:FileName atomically:YES];

  3. 归档 (NSKeyedArchiver)

  • 数据库:
  1. 数据库(SQLite、CoreData、第三方类库FMDB)

前3种都是覆盖存储。如果想要增加一条数据就必须把整个文件读出来,然后修改数据后再把整个内容覆盖写入文件。所以它们都不适合存储大量的内容。

沙盒:
iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。
沙盒就是一个文件夹,目录结构如下:

  • AppName.app "应用程序包"
  • Documents
  • Library
    Caches
    Preferences
  • tmp

"应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件。

  NSString *path = [[NSBundle mainBundle] bundlePath];
  NSLog(@"%@", path);

Documents: 最常用的目录,iTunes同步该应用时会同步此文件夹中的内容,适合存储重要数据。

  NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
  NSLog(@"%@", path);

Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。

  NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
  NSLog(@"%@", path);

Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。

tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。

  NSString *path = NSTemporaryDirectory();
  NSLog(@"%@", path);
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS数据持久化方式 文件 归档(NSKeyedArchiver) 属性列表(NSUserDefaults) 数据...
    向阳的向日葵花阅读 992评论 0赞 12
  • IOS数据持久化 数据的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在i...
    koula阅读 1,279评论 0赞 19
  • 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多...
    沙漠骑士阅读 470评论 0赞 1
  • 本文转自iOS中几种数据持久化方案,仅用作个人记录学习之用。 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应...
    iOS_肖晨阅读 814评论 0赞 46
  • 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,...
    HWenj阅读 636评论 0赞 8

友情链接更多精彩内容