沙盒主要有4个目录:
- MyApp.app 该目录包含了应用程序本身的数据,程序打包的时候的资源文件和一些本地文件就是存放在这个目录下的。 程序的可执行程序、plist文件也在这个目录下。 这个目录不会被iTunes同步
- Documents 使用这个目录来保存关键数据。关键数据指那些应用不可再生的数据。 这个目录会被iTunes同步
- Library 用来保存一些配置文件和其他一些文件。其中使用NSUserDefaults写的设置数据都会保存到Library/Preferences目录下的一个plist文件中。Library/Caches可以用来保存可再生的数据,比如网络请求,用户需要负责删除对应文件。 这个目录(除了Library/Caches外)会被iTunes同步
- tmp 使用这个目录来保存各种应用下次启动不再需要的临时文件。当应用不再需要这些文件的时候,需要主动将其删除。(当应用不再运行的时候,系统可能会将此目录清空。) 这个目录不会被iTunes同步
获取主要目录路径的方式
沙盒目录
NSLog(@"%@",NSHomeDirectory());
MyApp.app
NSLog(@"%@",[[NSBundle mainBundle] bundlePath]);
tmp
NSLog(@"%@",NSTemporaryDirectory());
Documents
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *docPath = [paths objectAtIndex:0];
NSLog(@"%@",docPath);
Library
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask,YES);
NSString *libPath = [paths objectAtIndex:0];
NSLog(@"%@",libPath);