美文网首页我的测试收藏首页投稿(暂停使用,暂停投稿)iOS Developer
什么是沙盒,沙盒里有那些文件,以及获取路径的方法

什么是沙盒,沙盒里有那些文件,以及获取路径的方法

作者: 钎探穗 | 来源:发表于2016-06-25 09:58 被阅读1329次
    • 沙盒:iOS应用程序为自己创建的独立(不可能两个程序共用一个沙盒),封闭(每一个应用程序的沙盒,只有它自己才能使用),安全(沙盒里边每个文件夹都有自己特有的删除渠道.只要自己手动不删除,文件永远存在)的一个文件系统目录.
    • 查找某个应用程序的沙盒的方法: 点击[前往]=>同时按住Alt键=>选中[资源库]=>选中Developer文件夹=>CoreSimulator=>Devices=>.......

    应用程序的沙盒目录下的四个文件夹:

    1:documents:保存应用程序运行时生成的持久化数据,iTunes会备份和恢复此文件

    • documents下的inbox文件:该文件是用来保存由其他应用程序请求当前应用程序打开的文件
      //例如:应用A中有一个文件,可以被应用程序B打开,那么应用B就创建一个文件C去保存A中可被B打开的文件(将A中的文件复制到C中)再让B打开A中的文件,而这个C,就是inbox文件(例如微信中打开网页)
      获取路径方法:
      NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES)firstObject];
      是数组使用firstObject/lastObject/objectAtIndex:0;因为在查找沙盒路径,返回的是一个数组,而这个数组中只有一个元素,(因为在移动端,不存在多用户,而PC端,涉及到多用户问题(管理员,访客))

    2:library:用来存储应用程序的文件数据,默认设置,或者其他动态信息,其中包含两个文件夹(Caches,Preferences)
    获取路径方法:
    NSString *library = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 1, YES)firstObject];

    • library/Caches:存储缓存文件,这个目录用于保存那些可再生文件,如网络请求数据(图片,音频,视频,)鉴于此,应用程序最好还是负责删除这些文件,不会被iTunes同步
      获取路径方法:
      NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, 1, YES)firstObject];
    • library/Preferences:用来存储用户的偏好设置,会将APP的偏好设置放在这个文件中(夜间模式,无图模式,永久存储是否会或者去地理位置),注意:我们用NSUserDefaults存储的用户数据都会被保存在该目录下的文件中,会被iTunes同步.
      获取路径方法:
    //注意:通常情况下,Preferences是有系统进行维护,我们很少进行操作
        NSString *Preferences =  [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)firstObject];
        //stringByAppendingString:将路径与字符串连接在一起拼接为完整路径
        NSString *preferencesPath = [Preferences stringByAppendingString:@"/Preferences"];
    

    3:tmp:用来存储临时文件,保存用应用程序在运行时的临时数据,使用完毕后,再将其从相应的文件夹下删除,应用程序没有运行时,系统也有可能删除该目录下的文件,不会被iTunes同步,而且,在iPhone重启时,该目录下单文件会被删除
    获取路径方法:
    NSString *tmp = NSTemporaryDirectory();


    4:.app:获取.app文件:该目录包含了应用程序本身的数据,包含资源文件和可执行文件.程序启动以后会根据需求动态加载(用到了懒加载机制)代码到或者资源到内存中.而且整个目录是只读的,不会被iTunes同步
    NSString *app = [[NSBundle mainBundle]resourcePath];

    相关文章

      网友评论

        本文标题:什么是沙盒,沙盒里有那些文件,以及获取路径的方法

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