zoukankan      html  css  js  c++  java
  • 沙盒(Sandbox)

      一、iOS沙盒机制
      沙盒是系统单独开辟的存储区域,用来保存非代码文件。所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。

           iOS应用程序只能在为该改程序创建的文件中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。   默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp,因为应用的沙盒机制,应用只能在几个目录下读写文件

           1.Documents:

           //保存应⽤运行时生成的需要持久化的数据,并将通过iCloud自动备份。例如,游戏应用可将游戏存档保存在该目录,iTunes备份和恢复的时候会包括此目录

           2.Library:

    //Library/Caches:保存应用运行时⽣成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据。比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。

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

    3.tmp:

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

    二、代码实现
    #import "ViewController.h"

    @interface ViewController ()

    @end

    @implementation ViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
       
        NSString *path = NSHomeDirectory();//获取沙盒路径--找到沙盒存储空间
        NSLog(@"--%@",path);
       
     //找到沙盒路径--12
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);//通过search找到沙盒的路径集合
        NSLog(@"==>%@",paths);
       
        NSString *dPath = [path stringByAppendingPathComponent:@"tmp"];//通过字符串的路径拼接方法,找到沙盒路径--(沙盒有3个路径,通过三个路径的字符串,可以找到这三个路径)
        NSLog(@"dPath:%@",dPath);
       
      //取出documents路径
        NSString *documentPath = [paths firstObject];
        NSLog( @"------%@",documentPath);
        NSString *str = @"姑娘你好";
        NSString *txtPath = [path stringByAppendingPathComponent:@"1.txt"];
        [str writeToFile:txtPath atomically:YES encoding:NSUTF8StringEncoding error:nil];//将字符串写入1.txt,如果没有此文件,系统会先创建,再写入,如果已经存在,则覆盖原有的文件
      
    //    //将图片写入沙盒,首先需要将图片转换成data
    //    UIImage *image = [UIImage imageNamed:@"1.jpg"];
    //    NSData *data = UIImageJPEGRepresentation(image, 1);
      
    //    [data writeToFile:[dPath stringByAppendingString:@"/1.jpg"] atomically:YES];//如果使用stringByAppendingString拼接路径,则需要在文件前加
    }
  • 相关阅读:
    centos7-关闭 rpcbind 服务
    nginx进行获取阿里云slb真实ip配置操作
    rsync同步时,删除目标目录比源目录多余文件的方法(--delete)
    nfs安装
    Selenium+PhantomJS使用时报错原因及解决方案
    python json转对象 指定字段名称
    大地坐标系和空间直角坐标系的转换
    python日志输出的内容修改为json格式
    Java String的intern方法
    python 超时重试的方法 signal手段
  • 原文地址:https://www.cnblogs.com/yibadao/p/5022727.html
Copyright © 2011-2022 走看看