iOS沙盒 - sandbox
Posted 老沙的博客园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS沙盒 - sandbox相关的知识,希望对你有一定的参考价值。
在说持久化解决方案之前,不得不先提一下ios的沙盒机制
因为这个机制,应用程序只能访问该沙盒中的内容,之外的内容很难获取到,所以也就是为什么iOS相比android更加安全之一。
我们先看沙盒预览图:
树状图:
从图上我们可以看到,应用程序沙盒中主要包含App可执行文件,本地数据存储目录,云存储目录,下面我们重点说一下本地数据目录
Swift
// 获取Home目录
let pathHome = NSHomeDirectory()
// 获取Document目录
let pathDocument = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
// 获取Library目录
let pathLibrary = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
// 获取Caches目录
let pathCaches = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
// 获取Temp目录
let pathTemp = NSTemporaryDirectory()Object-C
// 获取Home目录
NSString *pathHome = NSHomeDirectory();
// 获取Document目录
NSString *pathDocument = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
// 获取Library目录
NSString *pathLibrary = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
// 获取Caches目录
NSString *pathCaches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
// 获取Temp目录
NSString *pathTemp = NSTemporaryDirectory();Documents
最好将所有数据写入该目录下,这个目录主要就是存储用户数据,而且iTunes备份数据的时候,也会备份的这个目录下面的数据。
Library
用于存放应用程序专用的支持文件,比如WebKit缓存的图片等信息,保存应用程序在此启动过程中需要的信息
应用程序中存储的偏好设置文件,建议不要直接创建偏好文件,而是使用NSUserDefaults类来获取和设置应用程序的偏好设置
Preferences
Caches
Temp
存放临时文件,保存应用程序再次启动过车个闹钟功能不需要的信息。该路径下的文件不会被iTunes备份。
SystemData
以上是关于iOS沙盒 - sandbox的主要内容,如果未能解决你的问题,请参考以下文章