ios沙盒机制(SandBox)
iOS中的沙盒机制是一种安全体系,它规定了应用程序只能在为该应用程序创建的文件夹里读取文件,不可以访问其他地方的内容,所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等。
1.每个应用程序都在自己的沙盒内
2.应用程序间不能共享数据,不能随意去访问别的应用程序沙盒内容
3.应用程序向外请求或者接收数据都要经过权限认证。
4.沙盒根目录里有三个文件夹:Documents,一般应该把应用程序的数据文件存到这个文件夹里,用于存储用户数据或其他应该定期备份的信息。Library下有两个文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序偏好设置文件,不过不要在这里修改偏好设置。temp,存放临时文件,即应用程序再次启动不需要的文件。
查找模拟器沙盒文件夹在Mac电脑上的位置:
点击Finder,选择“前往文件夹”,再出现的窗口里输入“~/library”,点击“前往”,选择Application Support>iPhone Simulator选择应用程序使用的模拟器型号,然后选择“ Applaction”, 就会出现所有模拟器应用程序的沙盒,点击你所想选择的应用程序沙盒,就会出现上述三个文件夹。
(1)获取沙盒根目录
1)用NSHomeDirectory()获取
NSString *Path=NSHomeDirectory();
NSLog(@"path=%@",Path);
2)用用户名获取
NSString *userName=NSUserName();
NSString *RootPath=NSHomeDirectoryForUser(userName);
NSLog(@"rootPath=%@",RootPath);
[documentPathstringByAppendingString:@"plist.txt"];//在Document里面里添加文件
(3)获取temp文件路径
NSString *tempPath=NSTemporaryDirectory();
NSLog(@"tempPath=%@",tempPath);
(4)获取Caches文件路径
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES);
NSString *cachesDir=[paths objectAtIndex:0];
NSLog(@"cachesDir=%@",cachesDir);