zoukankan      html  css  js  c++  java
  • IOS程序 沙盒目录 结构分析 目录获取

    每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒

    应用沙盒的文件系统目录,如下图所示(假设应用的名称叫network)

    模拟器应用沙盒的根路径在: (apple是用户名, 7.1是模拟器版本)

    /Users/apple/Library/Application Support/iPhone Simulator/7.1/Applications

    应用程序包:(上图中的network)包含了所有的资源文件和可执行文件

    Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录

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

    Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据

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

    应用沙盒目录的常见获取方式:

    沙盒根目录:NSString *home = NSHomeDirectory();

    Documents:(2种方式)

    利用沙盒根目录拼接”Documents”字符串

    NSString *home = NSHomeDirectory();

    NSString *documents = [home stringByAppendingPathComponent:@"Documents"];

    // 不建议采用,因为新版本的操作系统可能会修改目录名

    利用NSSearchPathForDirectoriesInDomains函数

    // NSUserDomainMask 代表从用户文件夹下找

    // YES 代表展开路径中的波浪字符“~”

    NSArray *array =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);

    // 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素

    NSString *documents = [array objectAtIndex:0];

    tmp:NSString *tmp = NSTemporaryDirectory();

    Library/Caches:(跟Documents类似的2种方法)

    利用沙盒根目录拼接”Caches”字符串

    利用NSSearchPathForDirectoriesInDomains函数(将函数的第2个参数改为:NSCachesDirectory即可)

    Library/Preference:通过NSUserDefaults类存取该目录下的设置信息

  • 相关阅读:
    JS站点
    1011 World Cup Betting (20分)
    1007 Maximum Subsequence Sum (25分)(动态规划DP)
    1006 Sign In and Sign Out (25分)
    1005 Spell It Right (20分)
    1004 Counting Leaves (30分)(DFS)
    1003 Emergency (25分)(Dijkstra算法)
    1002 A+B for Polynomials (25分)
    1001 A+B Format (20分)
    canvas
  • 原文地址:https://www.cnblogs.com/hkyangvip/p/3840858.html
Copyright © 2011-2022 走看看