码迷,mamicode.com
首页 > 数据库 > 详细

沙盒(Sandbox)

时间:2015-12-06 01:47:57      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

  一、iOS沙盒机制
  沙盒是系统单独开辟的存储区域,用来保存非代码文件。所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。
  1.1、每个应用程序都有自己的存储空间
  1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容
  1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。
 
       Documents:   保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如游戏应用可将游戏存档保存在该目录.
       temp: 保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除.应用没有运行时,系统也可能会清除该目录下的文件.
iTunes同步设备时不会备份该目录.
       Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录.一般存储体积大,不需要备份的非重要数据.
       Library/Preference:保存应用的所有偏好设置,iOS的setting(设置)应用会在该目录中查找应用的设置信息.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拼接路径,则需要在文件前加
}

沙盒(Sandbox)

标签:

原文地址:http://www.cnblogs.com/yibadao/p/5022727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!