zoukankan      html  css  js  c++  java
  • 沙盒

    沙盒

    什么是数据持久化?数据的永久存储 为什么要做数据持久化:数据在内存中的数据,程序关闭,内存释放,数据丢失, 这种数据是临时的 数据持久化的本质:数据保存成文件,储存到程序的沙盒中
    沙河机制

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

    沙盒路径的位置 1.通过Finder查找程序沙盒相对路径 沙盒构成

    Document 存储用户数据,需要备份的信息 Library/Caches 存储缓存文件,程序专用的支持文件 Library/Preferences 存数应用程序的偏好设置文件

    .app 程序包(iOS8时.app不存储在沙盒中,有单独的文件夹存储所有程序的 app包)
    tmp 存储临时文件.比如:下载的zip包,解压后的在删除

    通过代码查找程序沙盒相对路径
    

    NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearchPathDomainMask domainMask,BOOL expandTilde);

    获取沙河目录路径的方法
    NSHomeDirectory ———————沙盒主路径 NSDocumentDirectory————————Documents文件夹 NSLibraryDirectory —————————Library文件夹 NSCachesDirectory————————Caches文件夹 NSTemporaryDirectory()———————tmp文件夹

    简单写入文件
    文件存储的相对目录
    

    //获取所有的documents文文件夹 NSArray *documentList =

    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
    YES);

    //将最后的一一个documents文文件夹路径作为文文件的存储⺫目目录 NSString *documentPath = documentList.lastObject;

    字符串对象写入入文文件
    //构造字符串文文件的存储路径NSString *strPath = [documentPath

    stringByAppendingString:@"/text.txt"]; //构造字符串对象NSString *foo_str = @“this is a test”;

    //通过将writeToFile:atomically:encoding:error:方方法发送给字符串对象完成 字符串存储到 文文件内的功能

    [foo_str writeToFile:strPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

    数组对象写入入文文件
    //构造数组plist文文件的存储路径NSString *arrayPath = [documentPath

    stringByAppendingString:@“/ array.plist”];

    //构造数组对象NSArray *foo_array = @[@“cyy”,@“yhy”,@“xdp”,@“lmz”,@“zdh”,@“snn”];

    //通过将writeToFile:atomically:方方法发送给数组对象完成数组存储到文文 件内的功能 [foo_array writeToFile:arrayPath atomically:YES];

    字典对象写入入文文件
    //构造字典plist文文件的存储路径NSString *dicPath = [documentPath

    stringByAppendingString:@“/dic.plist”];

    //构造数组对象 NSDictionary *foo_dic =

    @{@“jz”:@“cyy”,@“jzzl”:@“yhy”,@“js”:@“xdp”,@“jzzlzl”:@“lmz”,@“jfz”:@“zdh ”,@“tq”:@“snn”};

    //通过将writeToFile:atomically:方方法发送给字典对象完成数组存储到文文 件内的功能 [foo_dic writeToFile:dicPath atomically:YES];

    二二进制对象写入入文文件
    //构造二二进制文文件的存储路径NSString *dataPath = [documentPath

    stringByAppendingString:@“/ data.da”];

    //通过将writeToFile:atomically:方方法发送给二二进制对象完成二 二进制存储到文文 件内的功能

    [foo_data writeToFile:dataPath atomically:YES];

    注:二二进制对象可能存储的是图像、字符串等等。 

  • 相关阅读:
    linux下创建和删除软、硬链接
    linux教程:[4]配置Tomcat开机启动
    Linux下Tomcat的启动、关闭、杀死进程
    Linux下Tomcat的安装配置
    Linux安装JDK详细步骤
    每天一个linux命令(30): chown命令
    linux系统修改系统时间与时区
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
    linux下解压命令大全
    Scoped CSS规范草案
  • 原文地址:https://www.cnblogs.com/lidongxiao/p/4949989.html
Copyright © 2011-2022 走看看