iOS Documents、Library跟tmp的作用

原文地址:http://www.myexception.cn/operating-system/1749433.html

出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒。

目录下共有四个子目录:

Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。
AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
Library 目录:这个目录下有两个子目录:Caches 和 Preferences
Preferences 目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好
Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

获取这些目录路径的方法:

NSString *homeDir = NSHomeDirectory();
NSLog(@"homeDir:%@",homeDir);

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"docDir:%@",docDir);

NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"cachesDir:%@",cachesDir);

NSLog(@"tmpDir:%@",NSTemporaryDirectory());



获取应用程序程序包中资源文件路径的方法:
例如获取程序包中一个图片资源(apple.png)路径的方法:

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple" ofType:@"png"];
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];


代码中的mainBundle类方法用于返回一个代表应用程序包的对象。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,117评论 25 708
  • 前端知识体系http://www.cnblogs.com/sb19871023/p/3894452.html 前端...
    秋风喵阅读 12,523评论 7 163
  • 站在三十岁的门槛上,回顾从前,畅想未来。 时间这厮说快很快,说慢很慢。 转眼间,我们都要三十岁了,昨天我们还是惹是...
    146195562bba阅读 431评论 0 1
  • 图片格式〔.9.png〕 在线生成点九〔http://romannurik.github.io/AndroidAs...
    David丶丶阅读 1,168评论 0 2
  • 讲一个故事; “我乘坐的船在太平洋正中沉没了,于是我抓住救生圈,一个人看着星星在夜海漂流。静静的,美丽的夜。正漂之...
    zhuzhu_302阅读 282评论 0 0