iOS 数据持久化的方式

热门标签

,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

一、什么是数据持久化

所谓的数据持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据,既可以减少用户流量消耗,也可以增强APP的体验效果。

二、沙盒

沙盒(sandbox):iOS系统为每个应用程序创建的存储空间,且每个应用程序只能访问自身的存储空间,不能相互通信,所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等。
[图片上传中...(image.png-a7c639-1552281691771-0)]

沙盒目录

沙盒目录下的文件及文件夹:

iOS 数据持久化的方式

获取沙盒目录路径:

NSLog(@"沙盒目录路径:%@", NSHomeDirectory());
iOS 数据持久化的方式
沙盒路径.png

Documents

保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录。
苹果建议将在应用程序中浏览到的文件数据保存在该目录下。

Library

获取 Library 路径:

//获取Library的目录路径
    NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) firstObject];
    NSLog(@"Library 路径:%@", libDir);
iOS 数据持久化的方式

分为 Cache 和 Preferences

Cache

一般存储的是缓存文件,iTunes不会备份该目录。内存不足时会被清除,应用没有运行时,可能会被清除。一般存储体积大、不需要备份的非重要数据,例如音频、视频、图片等数据。
获取 Cache 路径:

// 获取cache目录路径
    NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];
    NSLog(@"Cache 路径:%@", cachesDir);
Preferences

保存应用程序的所有偏好设置iOS的Settings(设置),我们不应该直接在这里创建文件,而是需要通过NSUserDefault这个类来访问应用程序的偏好设置。
iTunes会自动备份该文件目录下的内容。
比如说:是否允许访问图片,是否允许访问地理位置......

tmp

临时文件夹,iTunes不会备份这个目录,用来保存临时数据,应用退出时会清除该目录下的数据。
tmp目录获取:

// 获取tmp目录路径
NSString *tmp = NSTemporaryDirectory();

SystemData

未找到相关文档来说明起存储规则,有待继续探究。。。

.com.apple.mobile_container_manager.metadata.plist

该文件为隐藏文件,从文件名可以看出该文件为一个管理文件,对当前移动设备管理元数据,从中可获取当前应用的唯一标示;

三、持久化方式

常用的持久化方式包括以下几种:

  1. 属性列表(plist存储)
  2. 偏好设置(NSUserDefaults)
  3. 归档序列化存储
  4. CoreData
  5. SQL

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS 数据持久化的方式》 发布于2019-10-09

分享到:
赞(0)

评论 抢沙发

2 + 5 =


iOS 数据持久化的方式

长按图片转发给朋友

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录