// 主路径
NSString *path = NSHomeDirectory();
NSLog(@"homePath = %@",path);
// 获取Documents目录路径
// 1.Documents
// 保存持久化数据,会备份。一般用来存储需要持久化的数据。
// 一般我们在项目中,我们会把一些用户的登录信息以及搜索历史记录等一些关键数据存储到这里。
// 此文件夹是默认备份的,备份到iCloud
//注:iCloud的备份,会通过Wi-Fi每天自动备份用户iOS设备。
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *docDirfilename = [docDir stringByAppendingPathComponent:@"data.txt"];
NSLog(@"docDir === %@",docDir);
NSLog(@"docDirfilename === %@",docDirfilename);
// 获取Library目录路径
// 里面包含5个文件夹
NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"libDir === %@",libDir);
// 获取Caches目录路径
/*
1.缓存数据应该保存在/Library/Caches目录下.
2.缓存数据在设备低存储空间时可能会被删除,iTunes或iCloud不会对其进行备份。
3.可以保存重新下载或生成的数据,而且没有这些数据也不会妨碍用户离线使用应用的功能。
4.当访问网络时系统自动会把访问的url,以数据库的方式存放在此目录下面.
*/
NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSLog(@"cachesPath === %@",cachesPath);
//获取Preferences目录路径
/*
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"有毒的程序猿" forKey:@"firstName"];
[defaults setInteger:100 forKey:@"age"];
[defaults synchronize];
是保存在Preference文件夹中一个yibundleID为名字的.plist文件,偏好设置都会都会吗把信息存在里面
NSUserDefaults就是默认存放在此文件夹下面,iTunes或iCloud会备份该目录。
*/
NSString *preferencesPath=[[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingString:@"/Preferences"];
NSLog(@"preferencesPath === %@",preferencesPath);
// 3.tmp
// 临时文件夹(系统会不定期删除里面的文件)
// 获取tmp目录路径
/*
临时数据应该保存在/tmp目录。
应用需要写到本地存储,内部使用的临时数据,但不需要长期保留使用。
系统可能会清空该目录下的数据,iTunes或iCloud也不会对其进行备份。
*/
NSString *tmpDir = NSTemporaryDirectory();
NSLog(@"preferencesPath === %@",tmpDir);
// 获取应用程序程序包中资源文件路径的方法
NSLog(@"%@",[[NSBundle mainBundle] bundlePath]);
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple" ofType:@"png"];
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"应用程序程序" forKey:@"firstName"];
[defaults setInteger:100 forKey:@"age"];
[defaults synchronize];
iOS 沙盒详解
最新推荐文章于 2023-04-03 10:24:27 发布