我的天空iOSUI笔记

iOS 应用沙盒

2015-11-12  本文已影响1797人  iOS_成才录

一、简介

二、应用沙盒目录

三、应用沙盒目录的常见获取方式

**1、沙盒根目录 **

 NSString*home = NSHomeDirectory();

2、Documents目录 2种方式

NSString*home = NSHomeDirectory();
NSString*documents =[home stringByAppendingPathComponent:@"Documents"];
// NSUserDomainMask 代表从用户文件夹下找
// YES 代表展开路径中的波浪字符“~”
NSArray*array =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO);
// 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
NSString*documents =[array objectAtIndex:0];

3、tmp临时目录

NSString *tmp = NSTemporaryDirectory();

4、Library/Caches 目录

NSString*documents =[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, NO) objectAtIndex:0]];


> **5、Library/Preference 偏好设置**

+ 通过NSUserDefaults类存取该目录下的设置信息

# 四、分类抽取,快速方法沙盒中的文件夹
+ 1、 NSString分类抽取

```objc

// 1、.h文件

#import <Foundation/Foundation.h>

@interface NSString (JP)

// 用于生成文件在caches目录中的路径
- (instancetype)cacheDir;
// 用于生成文件在document目录中的路径
- (instancetype)docDir;
// 用于生成文件在tmp目录中的路径
- (instancetype)tmpDir;

@end

// 2. .m实现文件

#import "NSString+JP.h"

@implementation NSString (JP)

- (instancetype)cacheDir
{
 // 1.获取caches目录
 NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
 // 2.生成绝对路径
 return [path stringByAppendingPathComponent:[self lastPathComponent]];
}

- (instancetype)docDir
{
 NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
 return [path stringByAppendingPathComponent:[self lastPathComponent]];
}

- (instancetype)tmpDir
{
 NSString *path = NSTemporaryDirectory();
 return [path stringByAppendingPathComponent:[self lastPathComponent]];
}
@end

NSString *filePath = [@"abc.png" cacheDir];
上一篇下一篇

猜你喜欢

热点阅读