沙盒

作者: eastCloud | 来源:发表于2016-03-10 23:51 被阅读120次

    iOS开发的过程中,数据存储是必不可少的一个模块,了解存储就得先知道沙盒

    常见的几种存储方式

    1.plist文件(属性列表)
    2.NSKeyedArchiver(归档)
    3.Preference(偏好设置)
    4.SQLite3
    5.Core Date
    在了解他们之前,就得先说下沙盒。

    沙盒机制

    -每个应用程序位于文件系统的严格限制部分
    -每个应用程序只能在为该程序创建的文件系统中读取文件
    -每个应用程序在iOS系统内都放在了统一的文件夹目录下
    -沙盒的本质就是一个文件夹,名字是随机分配的,按照UUID标示符标记分配的

    沙盒路径的位置

    1、通过Finder查找程序沙盒相对路径
    ~/Library/Application Support/iPhone Simulator
    2、通过代码查找程序的沙盒路径

    FOUNDATION_EXPORT NSArray<NSString *> *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde);
    
     /**
     *  沙盒路径
     *
     *  @param NSDocumentDirectory 制定指定的目录名称
     *  @param NSUserDomainMask    制定制定的作用域
     *  @param YES                 是否返回完整路径
     *
     *  @return Documents文件夹
     */
    NSArray *filepaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //数据持久化常用文件夹Documents
    NSLog(@"Documents = %@",filepaths);
    //数据持久化常用文件夹Tem
    NSString *temPath = NSTemporaryDirectory();
    NSLog(@"temp = %@",temPath);
        
    //应用程序在安装完成之后会在对应的沙盒中产生一个.app文件(与之对应的类是NSBundle),工程中的资源会保存在这个.app文件中,此.app文件是只读的,通常称之为应用程序包
    NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
    

    文件存储的相对目录

    //获取所有的Docments文件夹
    NSArray *filepaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //将最后一个Documents文件夹路径作为文件的存储目录
    NSString *docPath = filepaths.lastObject;```
    ####沙盒的基本构成
    Document:保存应用运行时生成的```需要持久化的数据```,iTunes同步设备时```会备份```该目录;
    Library/Caches:保存应用运行时生成的```需要持久化的数据```,iTunes同步设备时```不会备份```该目录;
    Library/Preferences:保存应用的所有```偏好设置```,iOS的setting(设置)应用会在该目录中查找应用的设置信息。iTunes同步```会备份该目录```.
    tmp:保存应用运行时所需的```临时数据```,使用完毕后再将相应文件从该目录删除,应用没有运行时,系统也可能会清除该目录下的文件,itunes同步```不会备份```该目录。
    
    ps:本来是想写一篇关于数据存储的,写着写着发现自己果然写作能力匮乏...哎....退而求其次写了这篇沙盒,好歹也是写了点东西😄,睡觉了😪

    相关文章

      网友评论

        本文标题:沙盒

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