沙盒机制介绍
出于安全起见,iOSapp只能在自己的沙盒里面访问自己的数据;也就是说不可以访问其他app的沙盒。而两个app之间想要进行信息通信,只能通过URl Scheme。沙盒里面的文件可以是照片,声音,文本跟配置文件等。
沙盒简述
1.沙盒结构
"应用程序包"
Documents
Library
Preferences
tmp
2.目录的区别
-
应用程序包
:存放程序的源文件,包括资源文件跟可执行文件
NSString *path = [[NSBundle mainBundle] bundlePath];
NSLog(@"%@", path);
-
Documents
:用于存储用户数据。iTunes备份和恢复时候会涉及到这个目录,因此应用重要的数据应该存到这里。
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSLog(@"%@", path);
-
Library\cache
:存放用户缓存的数据,一般都是来自网络或者计算的数据结果。
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
NSLog(@"%@", path);
-
Library\preferences
:App偏好设置,通过NSUserDefaults来获取跟访问,iTune会备份跟恢复这个文件。
-
temp
:用于存放临时文件,这个可以放一些当APP退出后不再需要的文件。
NSString *path = NSTemporaryDirectory();
NSLog(@"%@", path);