每个应用程序都有对应的沙盒,沙盒的目录结构如下:
Documents:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。
Library:这个目录下有两个子目录:Caches 和Preferences
Preferences:应用程序的偏好设置文件。不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
Caches:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。
1.获取沙盒根目录:
1.1直接获取
NSString *homePath = NSHomeDirectory();
NSLog(@"homePath = %@",homePath);
1.2通过应用程序名间接获取
NSString *username = NSUserName();
NSString *usernameGethomePath = NSHomeDirectoryForUser(username);
NSLog(@"usernameGethomePath = %@",usernameGethomePath);
2.获取Documents目录
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"documentsPath = %@",documentsPath);
3.获取tmp目录
NSString *tmpPath = NSTemporaryDirectory();
NSLog(@"tmpPath = %@",tmpPath);
4.获取cache目录
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"cachePath = %@",cachePath);
5.获取Preferences目录对象
//5.1获取对象
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"Preferences = %@",defaults);
//5.2保存数据
[defaults setObject:@"dog" forKey:@"animal"];
[defaults setInteger:12 forKey:@"age"];
//5.3刷新写入数据
[defaults synchronize];
//5.4读取数据
NSString *animal = [defaults objectForKey:@"animal"];
NSInteger age = [defaults integerForKey:@"age"];
// 5.5打印输出结果
NSLog(@"animal = %@,age = %zd",animal,age);
--end