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(NSDocumentDirectoryNSUserDomainMaskYES) firstObject];
    // 获取Library目录
    NSString *pathLibrary  = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectoryNSUserDomainMaskYES) firstObject];
    // 获取Caches目录
    NSString *pathCaches   = [NSSearchPathForDirectoriesInDomains(NSCachesDirectoryNSUserDomainMaskYES) firstObject];
    // 获取Temp目录
    NSString *pathTemp     = NSTemporaryDirectory();
  • Documents

    • 最好将所有数据写入该目录下,这个目录主要就是存储用户数据,而且iTunes备份数据的时候,也会备份的这个目录下面的数据。

  • Library

    • 用于存放应用程序专用的支持文件,比如WebKit缓存的图片等信息,保存应用程序在此启动过程中需要的信息

    • 应用程序中存储的偏好设置文件,建议不要直接创建偏好文件,而是使用NSUserDefaults类来获取和设置应用程序的偏好设置

    • Preferences

    • Caches

  • Temp

    • 存放临时文件,保存应用程序再次启动过车个闹钟功能不需要的信息。该路径下的文件不会被iTunes备份。

  • SystemData


以上是关于iOS沙盒 - sandbox的主要内容,如果未能解决你的问题,请参考以下文章

iOS 文件操作:沙盒(SandBox)文件操作(FileManager)程序包(NSBundle)

iOS学习之iOS沙盒(sandbox)机制和文件操作

iOS学习之iOS沙盒(sandbox)机制和文件操作1

理解 iOS沙盒(sandbox)机制

沙盒(SandBox)

iOS沙盒 - sandbox