沙盒

作者: 我是卖报滴小行家 | 来源:发表于2016-05-04 11:10 被阅读45次

1、沙盒

  • 程序只能访问自己的沙盒
  • NSHomeDirectory() 访问沙盒路径
  • 沙盒下有三个目录:Documents、Library、tmp
屏幕快照 2016-03-12 下午4.48.19.png
Documents:
- 1)一般用存在程序中创建的文件
- 2)程序中浏览到的文件数据保存在该目录下
- 3)iTunes备份和恢复的时候会包括此目录

//Documents路径
NSString *address = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
Library:
- 1)存储应用的默认设置及状态信息

Library/Caches:
- 1)存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

Library/Preferences:
- 1)目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults

//Library路径
NSString * Libraryaddress = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

//Caches路径
NSString *address = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
//
[Libraryaddress stringByAppendingFormat:@"/Caches"]

//Preferences路径
[Libraryaddress stringByAppendingFormat:@"/Preference"]
tmp:
- 1)提供一个即时创建临时文件的地方

//tmp路径
NSString *string = NSHomeDirectory();
NSString *tmp = [string stringByAppendingFormat:@"/tmp"];
//
NSString *string = NSTemporaryDirectory();
  • 注意
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。
  • 写入沙盒
NSString *string = NSTemporaryDirectory();

//NSString
NSString *stringH = @"HHHHHHHHHHHHH";
[stringH writeToFile:[string stringByAppendingString:@"HH.text"] atomically:YES encoding:NSUTF8StringEncoding error:nil];

// NSArray/NSDictionary/NSData
NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];
[arr writeToFile:[string stringByAppendingString:@"arr.text"] atomically:YES];

  • 删除沙盒文件
NSString *string = NSTemporaryDirectory();
NSFileManager *manager = [NSFileManager defaultManager];
[manager removeItemAtPath:[string stringByAppendingString:@"arr.text"] error:nil];
  • 判断沙盒中是否有此文件
BOOL isExsit = [manager fileExistsAtPath:[string stringByAppendingString:@"HH.text"]];
    NSFileManager *manager = [NSFileManager defaultManager];
    NSString *imgHPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"/imgH"];
    // 创建一个文件夹
    if (![manager isExecutableFileAtPath:imgHPath]) {
        [manager createDirectoryAtPath:imgHPath withIntermediateDirectories:YES attributes:nil error:nil];
    }
    
    //向imgH文件中添加图片
    NSURL *url = [NSURL URLWithString:imgString];
    NSString *pathString = [NSString stringWithFormat:@"/%@", [imgString substringFromIndex:(imgString.length - 7)]];
    NSString *cachePath = [imgHPath stringByAppendingPathComponent:pathString];
    NSLog(@"%@", cachePath);

    // 删除imgH文件
    NSString *imgHPath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"/imgH"];
    NSFileManager *manager = [NSFileManager defaultManager];
    if ([manager isExecutableFileAtPath:imgHPath]) {        
        [manager removeItemAtPath:imgHPath error:nil];
    }
    NSLog(@"%@", NSHomeDirectory());

转自:http://my.oschina.net/joanfen/blog/151145

相关文章

  • IOS沙盒 - OC

    沙盒: 沙盒包含: 沙盒路径获取的方法:

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • 沙盒

    1、沙盒 程序只能访问自己的沙盒 NSHomeDirectory() 访问沙盒路径 沙盒下有三个目录:Docume...

  • iOS 系统相关复习

    沙盒 iOS沙盒详细介绍iOS沙盒篇 沙盒机制介绍 iOS中的沙盒机制是一种安全体系。为了保证系统安全,iOS每个...

  • iOS开发之沙盒机制

    沙盒 iOS系统,每个应用都有自己的沙盒,每个沙盒都是相互独立的,不能互相访问。 获取沙盒路径的代码: NSHom...

  • 数据持久化存储

    沙盒 iOS程序默认情况下只能访问自己的目录,这个目录被称作沙盒 沙盒结构 沙盒结构主要为 DocumentLib...

  • iOS的永久话储存

    沙盒:IOS应用中每个应用均有自己沙盒,用来储存APP自己的数据,每个应用的沙盒均是应用特有的不能交叉访问。 沙盒...

  • iOS沙盒解析及操作

    介绍 概念:每个应用拥有自己的应用沙盒,所谓的应用沙盒就是文件系统目录。 沙盒文件目录 沙盒操作 获取应用根目录 ...

网友评论

      本文标题:沙盒

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