沙盒

苹果为每个APP都提供一个沙盒用于存储数据。在沙盒目录中有四个目录,分别是Document目录,AppName.app目录,Library目录和tmp目录。其中在Library中还有两个目录:Caches和Preferences。
Document:将所有的应用程序数据写入到这个目录,这个目录用于存储用户数据或其他应该定期备份的信息。
AppName.app:应用程序程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以再运行时不能对这个目录中的内容进行修改。否则可能令程序无法启动。
Library:其中Caches目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息;Preferences目录包含应用程序的偏好设置文件,应使用NSUserDefaults类来去的和设置应用程序的偏好。
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());

获取应用程序程序包中资源文件路径的方法:

NSString * path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"fileTypeName"];

代码中的mainBundle类方法用于返回一个代表应用程序包的对象。

*用户生成的文件存放在Document目录里,而属于程序自己的数据存放在Library/Caches中。
APPLE对这方面的要求比较严格。主要原因是iOS的iCloud同步。

未完待续

本文参考自
https://blog.csdn.net/u012891546/article/details/50976790

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 沙盒目录 每个IOS 应用都应该有自己的应用沙盒(应用沙盒指的是文件系统目录),与其他的文件系统隔离,应用必须待在...
    rlqs阅读 5,375评论 0 0
  • 前言: 处于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如在用户授权情...
    你好自己阅读 3,255评论 0 0
  • iOS系统在安全性上的一大亮点就是沙盒。 每个iOS应用SDK都被限制在沙盒中,我们可以把沙盒当成一个设置了仅当前...
    安静守护你阅读 13,151评论 0 2
  • 什么是沙盒机制? 我们手中的iphone/ipad设备上包含着闪存(flash memory),它的功能和一个硬盘...
    小小土豆dev阅读 6,256评论 0 5
  • 建议先点击阅读《未说出口的秘密》 “你这也不能让我省心,那也不能让我省心,没一点让人省心!” 01 剑海推开门,看...
    扁羽阅读 2,507评论 0 2