iOS 沙盒机制

iOS的应用只能访问系统为该应用创建的区域,不可访问其他区域,这块区域就是沙盒(sandBox)。我们常常把一些图片,属性文件(plist文件)等等存在到该目录下,以便开发中使用。

1.获取沙盒路径

a.获取模拟器沙盒路径

如果在开发中,你不知道你想查找的应用沙盒路径的话,你可以通过NSHomeDirectory()这个方法来打印你的沙盒路径。

eg:

NSLog(@"沙盒路径---->%@",NSHomeDirectory());
运行后可见控制台输出如下:


控制台输出的就是你想查找的应用沙盒地址。使用command+shift+G,把控制台输出的路径复制粘贴,然后回车就可以进入到该应用的沙盒中。

b.获取真机沙盒路径

如果在开发中,需要获取真机的沙盒地址以查看某些东西是否按预期存储成功的话。

步骤是:

ba.连接真机到xcode,运行应用,即项目;

bb.点击Finder上的Window,点击Window,如下图所示


bc.点击window之后,出现下拉菜单,选择Device,进入下图所示

iOS 沙盒机制_第1张图片

bd.如下图所示操作

iOS 沙盒机制_第2张图片

be.当你完成bd之后,指定一个位置,例如说桌面,点击下载,获取一个包。

bf.右键点击打开包内容,o了。

2.沙盒下文件夹构造以及作用

沙盒下共有3个文件夹分别是:Documents、Library、tmp。作用如下:

Documents

1.我们常常将应用程序的数据文件保存在该目录下。不过这些数据类型基本属于不可再生的数据

2.这个文件夹会被iTunes同步

3.获取该目录的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSLog(@"Document路径------>%@", path);

Library

1.存储程序的默认设置或其它状态信息

2.该文件夹会被iTunes同步;

3.获取的该目录的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSLog(@"Library路径----->%@", path);

4.本目录还有两个子目录分别是:Caches和Preferences

Library/Caches

1.主要是缓存文件(可再生的文件,比如网络请求的数据),用户使用过程中缓存都可以保存在这个目录中。

2.获取该目录的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *path = [paths objectAtIndex:0];  
NSLog(@"%@", path);

Library/Preferences

1.常用语保存一些偏好设置;

tmp

1.仅是提供一个即时创建临时文件的地方

2.该文件夹不会被iTunes同步;

3.获取该目录的方法是:

NSString *tmpDir = NSTemporaryDirectory();  
 NSLog(@"%@", tmpDir); 

你可能感兴趣的:(ios,真机,沙盒)