美文网首页
iOS 数据持久化方案

iOS 数据持久化方案

作者: 9d8c8692519b | 来源:发表于2018-08-07 10:03 被阅读12次

概论

所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案:

·  plist文件(属性列表)

·  preference(偏好设置)

·  NSKeyedArchiver(归档)

·  SQLite 3

·  CoreData

沙盒

在介绍各种存储方法之前,有必要说明以下沙盒机制。iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。

1.结构

既然沙盒就是一个文件夹,那就看看里面有什么吧。沙盒的目录结构如下:

"应用程序包"

Documents

Library

    Caches

    Preferences

tmp

2.目录特性

虽然沙盒中有这么多文件夹,但是没有文件夹都不尽相同,都有各自的特性。所以在选择存放目录时,一定要认真选择适合的目录。

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

  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);

相关文章

网友评论

      本文标题:iOS 数据持久化方案

      本文链接:https://www.haomeiwen.com/subject/mplovftx.html