您的位置:首页 > 移动开发 > IOS开发

iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据

2017-06-18 22:16 507 查看
版权声明:转载请注明出处:http://blog.csdn.net/kevindongkun

iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据
1、初识沙盒:(1)、存储在内存中的数据,程序关闭,内存释放,数据就会丢失,这种数据是临时的。要想数据永久保存,将数据保存成文件,存储到程序的沙盒里就可实现这一功能;

(2)、沙盒的本质就是一个文件夹,名字是随机分配的。

(3)、沙盒构成:

Document : 存储用户数据,需要备份的信息

Library/Caches:存储缓存文件,程序专用的支持文件

Library/Preferences :存储应用程序的偏好设置文件

.app :程序包(iOS8时,app不存储在沙盒里, 有单独的文件夹存储所以程序的app包)

tmp : 存储临时文件。比如:下载的zip包,解压后可删除。

参考;

Documents
目录:将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。
AppName.app 目录:应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
Library 目录:这个目录下有两个子目录:Caches 和 Preferences
    Preferences 目录包含应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好
    Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
   tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

    2.获取文件路径的数组(返回目录)

       
//参数一:搜索的目录

       
//参数二:搜索的范围

       //参数三:YES:表示绝对路径,NO:表示相对路径
(1).存储字符串:
   NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //得到文件的具体路径(默认在数组的最后一个)
    NSString *document = [array lastObject];
    //拼接我们自己创建的文件的路径
    NSString *documentPath = [document stringByAppendingPathComponent:@"test.txt"];
    NSString *str = @"你好, 我是沙盒Document文件";
    [str writeToFile:documentPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"%@", documentPath);
*通过输出的地址-->前往文件夹 就可找到具体文件的存储地方;如下图:



(2).存储数组:
//前三步同上:

     NSArray *array =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
     NSString
*documents = [arraylastObject];
      NSString
*documentPath = [documentsstringByAppendingPathComponent:@"arrayXML.xml"];
     //第四步:准备好要存到本地的数组
    NSArray *dataArray = [NSArray arrayWithObjects:@"你好", @"我是", @"沙盒", nil];
     //第五步:将数组存入到指定的本地文件
    [dataArray writeToFile:documentPath atomically:YES];
 //第六步:可对已经存储的数组进行查询等操作
    NSArray *resultArray = [NSArray arrayWithContentsOfFile:documentPath];
    NSLog(@"%@", documentPath);
查找如下图:***数组存储到本地之后是以xml形式存储的,不论文件是txt还是xml;
    


(3).存储字典:

 NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [array lastObject];
    NSString *documnetPath = [documents stringByAppendingPathComponent:@"dic.plist"];
//准备要存入的字典
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"Kevin",@"name",@"男",@"gender",nil

 

];
//将字典存入指定的本地文件
    [dic writeToFile:documnetPath atomically:YES];
        //可对已经存储的字典操作
    NSDictionary *resultDic = [NSDictionary dictionaryWithContentsOfFile:documnetPath];
    NSLog(@"%@", documnetPath);
   存储结果如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐