美文网首页面试题目
iOS 数据存储(一) - 沙盒机制

iOS 数据存储(一) - 沙盒机制

作者: 搬砖的crystal | 来源:发表于2022-07-21 14:13 被阅读0次

每个 iOS 应用都有自己的应用沙盒,就是文件系统目录,每个应用都只能在自己的沙盒内活动,不能随意跨越自己的沙盒去访问别的应用程序沙盒中的内容,iOS8 部分开放访问 extension,访问别人沙盒内的数据需要访问权限。

沙盒目录如下:

1.Documents

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

获取路径

        /**
         NSSearchPathForDirectoriesInDomains
             是用来查找文件路径的函数,其返回值是一个数组,这个数组中只有一个NSString类型元素,这个元素保存的就是查找的路径。
         NSDocumentDirectory
             表示需要查找的是Document文件夹
         NSUserDomainMask
             表示在用户的主目录中查找
         YES 表示返回路径展开
         */
        NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
2.Library

获取路径

NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject;
(1)Caches 存放缓存

此目录用来保存应用程序运行时生成的需要持久化的数据,这些数据一般存储体积比较大,又不是十分重要,比如网络请求数据等。这些数据需要用户负责删除。iTunes 同步设备时不会备份该目录。

获取路径

NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
(2)Preferences 偏好设置,iTunes会自动备份

此目录保存应用程序的所有偏好设置,iOS 的 Settings(设置)应用会在该目录中查找应用的设置信息。iTunes 同步设备时会备份该目录

Preferences 目录下不能直接创建偏好设置文件,而是应该使用 NSUserDefaults 类来取得和设置应用程序的偏好。

获取路径

    NSString *PreferencesPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:@"Preferences"];
(3)SplashBoard

系统启动图目录
储存程序启动图缓存数据资源,更新启动图后还是显示旧启动图可尝试清空此目录数据。

(4)Saved application state 保存应用程序状态的目录

用户期待应用能记住他们输入文本框的内容和启用的设置。如果一个用户切换到另一个应用,片刻后又切换回来,原先的应用可能已经在后台被系统杀掉了。为了在应用启动时使它的界面和之前保持一致,新版本的iOS通过State Preservation API将对象状态信息储存在Saved Application State目录中。开发者可以将需要保存的状态的UI标记出来。
苹果建议此目录中所有数据放在自定义子目录中,子目录名称以程序Bundle Identifier或公司名命名。
在保存应用状态时要相当小心,这也是一个容易泄露数据的地方。

3.tmp 临时文件

此目录保存应用程序运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes 同步设备时不会备份该目录。

获取路径

NSString *tmpPath = NSTemporaryDirectory();
4.SystemData 保存系统数据

相关文章

  • 使用沙盒的正确姿势

    在学习iOS存储方法之前,先了解一下iOS存储机制——沙盒应用沙盒机制:每个iOS应用都有自己的应用沙盒(文件系统...

  • 四种存储数据的方式

    目录沙盒机制: ios的数据存储是沙盒机制的,可以通过iOS模拟器查看一下每个app的目录结构 ~/Library...

  • iOS 沙盒

    沙盒机制:在iOS中每个APP都拥有自己的沙盒,APP只能访问对应沙盒中存储的数据, iOS是不允许跨越沙盒去访问...

  • 学习笔记-应用的沙盒

    在iOS设备中,APP的数据存储采用了SandBox(沙盒)机制。 应用的沙盒 目录结构 每个iOS应用都有自己应...

  • iOS 数据持久化-四种存储方式(二)

    上一篇:iOS 数据持久化-沙盒机制介绍(一) iOS 数据存储有四种方案: NSUserDefaultKeyCh...

  • 5 - 数据存储持久化

    1 - 说到数据存储我们需要了解他们的存储位置(也就是我们俗称的沙盒) IOS中的沙盒机制(SandBox)是一种...

  • 沙盒机制

    IOS数据存储之文件沙盒存储

  • 05-iOS数据存储

    一、iOS沙盒机制 iOS的每个应用都有属于自己的存储空间,即沙盒应用只能访问自己的沙盒,不可访问其他区域。 沙盒...

  • FMDB/SQLCipher数据库加密

    在iOS开发过程中经常需要用到SQLite来存储数据,由于Apple的沙盒机制,我们App的数据存储在沙盒里面,...

  • 沙盒和NSBundle

    沙盒 1、沙盒机制介绍 iOS中的沙盒机制是一种安全体系。每个iOS程序都有一个独立的文件系统(存储空间),而且只...

网友评论

    本文标题:iOS 数据存储(一) - 沙盒机制

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