IOS 沙盒机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 沙盒机制相关的知识,希望对你有一定的参考价值。

ios中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。

应用沙盒一般包括以下几个文件目录:
1  应用程序包:包含所有资源文件和可执行文件  
2  Documents:保存应用运行时生成的需要持久化的数据,iTunes会自动备份该目录  
3  tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除,应用没有运行时,系统也可能会自动清理该目录下的文件,iTunes不会同步该目录,iPhone重启时该目录下的文件会丢失。
4  Libaray:存储程序的默认设置和其他状态信息,iTunes会自动备份该目录。  
5  Libaray/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除,一般存放体积比较大,不是很重要的资源  
6  Libaray/Preferences:保存应用的所有偏好设置,ios的Settings(设置)应用会在该目录中查找应用的设置信息,iTunes会自动备份该目录。

1、获取程序的Home目录
NSString *homeDirectory = NSHomeDirectory();  
NSLog(@"path:%@", homeDirectory);  

2、获取document目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"path:%@", path);   

3、获取Cache目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

4、获取Library目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);  

5、获取Tmp目录
NSString *tmpDir = NSTemporaryDirectory();  
 NSLog(@"%@", tmpDir); 

6、写入文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *docDir = [paths objectAtIndex:0];  
    if (!docDir) {  
        NSLog(@"Documents 目录未找到");          
    }  
    NSArray *array = [[NSArray alloc] initWithObjects:@"内容",@"content",nil];  
    NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];  
    [array writeToFile:filePath atomically:YES];

7, 写入文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *docDir = [paths objectAtIndex:0];  
    NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];  
    NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];  
    NSLog(@"%@", array); 

 

以上是关于IOS 沙盒机制的主要内容,如果未能解决你的问题,请参考以下文章

理解 iOS沙盒(sandbox)机制

iOS学习之iOS沙盒(sandbox)机制和文件操作

iOS学习之iOS沙盒(sandbox)机制和文件操作1

ios - 沙盒和NSBundle

iOS开发之沙盒机制(SandBox)

理解 iOS沙盒(sandbox)机制