美文网首页
总结iOS下的沙盒路径区别和作用

总结iOS下的沙盒路径区别和作用

作者: iOS坚持者 | 来源:发表于2018-03-06 13:25 被阅读76次

搞 iOS 开发的都知道在程序下面的沙盒路径,但是真正他们具体的作用可能就不是很清楚了。今天笔者就总结下他们的区别和相应的作用,也是为了给自己巩固下知识点。

附上官网文件系统设计规则说明

我们先来看一张图,来理解下

沙盒路径

这张图就说明了沙盒路径下的目录结构,

获取 MyApp的沙盒路径

NSString *homePath = NSHomeDirectory();     OC

let homePath: String = NSHomeDirectory()      Swift

在这个路径下有Documents、Library、temp以及一个.app包!通过down container 看到还有一个SystemData文件夹

接下来我们分别介绍这几个文件夹的路径获取方式和作用

一、Document:

Document:用于存储用户数据,该目录下的所有文件会进行iCloud或iTunes备份,所以,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,如:

1.APP的数据库表.

2.必要的一些图标本地缓存.

3.重要的plist文件,如当前登录人的信息.

4.购买过的音乐,书籍等

获取方式

OC:

NSString *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

Swift:

let documentPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory,FileManager.SearchPathDomainMask.userDomainMask, true)[0]

另外documentationDirectory和documentDirectory是不同的,documentDirectory 是指程序中对应的Documents路径,而documentationDirectory对应于程序中的Library/Documentation路径,这个路径是没有读写权限的,所以看不到文件生成。

二、Library:

该路径下的文件夹,除Caches以外,都会被iTunes备份。这个目录下有两个子目录:

Preferences:

包含应用程序的偏好设置文件。NSUserDefaults就是默认存放在此文件夹下面。

Caches:

iTunes不会备份此目录,此目录下文件不会在应用退出删除。一般存放体积比较大,不是特别重要的资源,比如缓存数据。缓存数据在设备低存储空间时可能会被删除。

获取方式:

OC:

NSString *library = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];

NSString *cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

Swift:

let library = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory,FileManager.SearchPathDomainMask.userDomainMask, true)[0]

let cachePaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0]

三、tmp:

tmp:目录用于存放临时文件,APP重新启动时会清除这个路径下的文件。该路径下的文件不会被iTunes备份。一般用来保存临时文件,比如:相机拍摄完成时的照片视频都会被暂时保存到这个路径。

获取方式:

OC:

NSString *tmp = NSTemporaryDirectory();

Swift:

let tmp = NSTemporaryDirectory()

好了,基于 Swift 和 Object-C两种语言获取沙盒路径就先写到这里了,既然提到路径,那么在接下来的一篇就提提存储吧。

相关文章

  • 总结iOS下的沙盒路径区别和作用

    搞 iOS 开发的都知道在程序下面的沙盒路径,但是真正他们具体的作用可能就不是很清楚了。今天笔者就总结下他们的区别...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • IOS 开发之文件路径

    IOS开发中涉及到文件路径,就需要了解苹果的沙盒机制。那么什么是沙河? 一、沙盒的概念与作用 1、IOS应用程序只...

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS 沙河路径

    沙河路径 每个iOS 应用都有自己的沙盒路径,应用沙盒就是文件系统目录应用沙盒文件目录:应用程序包、Documen...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • Tip:iOS缓存路径

    不迁怒,不贰过 ---孔子 首先先搞清楚iOS沙盒下几个路径基本的区别,我们数据存储存放路径的合理性跟这密切相关,...

  • 沙盒路径

    在平时的开发中,我们经常和沙盒打交道,可能平时并不会过多关注沙盒路径下一些文件夹的区别和作用,今天我自己做了一个总...

  • iOS开发之沙盒机制

    沙盒 iOS系统,每个应用都有自己的沙盒,每个沙盒都是相互独立的,不能互相访问。 获取沙盒路径的代码: NSHom...

  • iOS读写json文件

    一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录。但是iOS系统会将每个应用的...

网友评论

      本文标题:总结iOS下的沙盒路径区别和作用

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